Sure NJ, I'll create both (Jira and PR).
-=e On Fri, Jul 14, 2017 at 1:46 PM, Nandish Jayaram <njaya...@pivotal.io> wrote: > Thank you Ed, this is great. We will create a JIRA to incorporate this > (including documenting the steps to use it). Or, you can also create a PR. > :) > > NJ > > On Fri, Jul 14, 2017 at 12:31 PM, Ed Espino <esp...@apache.org> wrote: > > > NJ, > > > > I spent about an hour getting it setup on my mac. This supported the > > MLP PR review. I threw some info together below. > > > > Hope it helps, > > -=e > > > > ------------------ > > > > Add lcov through brew (brings in lcov and genhtml utilities): > > brew install lcov > > > > "Total HACK" to add code coverage support into the build for C/C++ > > code. This is quick and dirty so I could get to the data I needed for > > the PR review. > > > > diff --git a/CMakeLists.txt b/CMakeLists.txt > > index b2172ef3..db80986c 100644 > > --- a/CMakeLists.txt > > +++ b/CMakeLists.txt > > @@ -104,7 +104,7 @@ if(CMAKE_COMPILER_IS_GNUCXX) > > set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ") > > endif(APPLE) > > elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") > > - set(CMAKE_CXX_FLAGS "-stdlib=libstdc++") > > + set(CMAKE_CXX_FLAGS "-stdlib=libstdc++ -fprofile-arcs > > -ftest-coverage") > > endif(CMAKE_COMPILER_IS_GNUCXX) > > > > # force a `m4_' prefix to all builtins > > @@ -114,6 +114,8 @@ else() > > set(M4_ARGUMENTS "--prefix-builtins") > > endif() > > > > +set(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage") > > + > > # Read and parse Version.yml file > > file(READ "${MADLIB_VERSION_YML}" _MADLIB_VERSION_CONTENTS) > > string(REGEX REPLACE "^.*version:[ \t]*([^\n]*)\n.*" "\\1" > > MADLIB_VERSION_STRING "${_MADLIB_VERSION_CONTENTS}") > > > > Once MADlib is built and installed, run your tests: > > > > ## Build and install MADlib > > mkdir build > > cd build > > cmake .. > > make -j8 install > > /usr/local/madlib/bin/madpack -s madlib -p postgres install > > > > ## At this point you can run your tests (I'm focusing on MLP) > > > > /usr/local/madlib/bin/madpack -s madlib -p postgres install-check -t > > convex/mlp > > > > ## Time to capture the results and generate html report. > > > > lcov --capture --directory . --output-file coverage.info > > genhtml coverage.info --output-directory gcov > > > > # You will notice there is some uninteresting system coverage info. > > # The following will filter them out. > > > > lcov --remove coverage.info '/usr/include/*' '/usr/local/include/*' > > '/usr/local/postgres/*' '*build/third_party/*' -o coverage_filtered.info > > rm -rf gcov > > genhtml coverage_filtered.info --output-directory gcov > > > > It is possible to zero out the counters with the following. > > lcov --zerocounters --directory . > > > > > > On Fri, Jul 14, 2017 at 12:23 PM, Nandish Jayaram <njaya...@pivotal.io> > > wrote: > > > > > Hi Ed, > > > > > > We haven't set that up for MADlib yet, but we will be looking into it > > soon. > > > Any ideas? > > > > > > NJ > > > > > > On Fri, Jul 14, 2017 at 10:00 AM, Ed Espino <esp...@apache.org> wrote: > > > > > > > Out of curiosity, do MADlib developers regularly use code coverage > > > > utilities to measure the coverage quality of their tests? > > > > > > > > -=e > > > > > > > > -- > > > > *Ed Espino* > > > > > > > > > > > > > > > -- > > *Ed Espino* > > > -- *Ed Espino*