We only need to calculate code coverage for code in src subdirectory. However,
if unit-tests sourcess are not provided, the lcov fails to notice some of the
covered code paths in header files.
This commit installs all the sources, but removes irrelevant ones from the
report. It adds ~ +5% and +10% to line and function coverage respectively.
Change-Id: If17259ee4b8b76b8c7060c8d49ec92577d997eaf
# coverage data
SET(COVERAGE_BUILD_DIR
- ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET_UNIT_TESTS}.dir/__/src/
+ ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TARGET_UNIT_TESTS}.dir/
)
# install gcno files
# install all the source & header files just as in the buildir
INSTALL(
- DIRECTORY ${PROJECT_SOURCE_DIR}/src
+ DIRECTORY ${PROJECT_SOURCE_DIR}/
DESTINATION ${CMAKE_BINARY_DIR}
FILES_MATCHING PATTERN "*.cpp" PATTERN "*.h"
)
# prepare report
rm -f $STDERR
lcov --no-external -c -d "@COVERAGE_DIR@" -b "@CMAKE_BINARY_DIR@" -o $REPORT 2>$STDERR
+lcov -r $REPORT "@CMAKE_BINARY_DIR@/unit-tests/*" -o $REPORT
+lcov -r $REPORT "@CMAKE_BINARY_DIR@/common/*" -o $REPORT
# check warnings
if [ -s $STDERR ]