coverage mode

This commit is contained in:
2018-12-22 05:17:28 +07:00
parent 7f3fb9f321
commit 6508dc8442
2 changed files with 28 additions and 0 deletions

View File

@@ -49,6 +49,18 @@ if(MSVC)
endif()
endif(MSVC)
#
# coverage mode
#
option(E2D_BUILD_WITH_COVERAGE "Build with coverage" OFF)
if(E2D_BUILD_WITH_COVERAGE AND (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
add_definitions(-DE2D_BUILD_WITH_COVERAGE)
set(E2D_COVERAGE_FLAGS "--coverage")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${E2D_COVERAGE_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${E2D_COVERAGE_FLAGS}")
endif()
#
# sanitizer mode
#

16
scripts/gen_lcov_coverage.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
set -e
BUILD_DIR=`dirname "$BASH_SOURCE"`/../build
mkdir -p $BUILD_DIR/coverage
cd $BUILD_DIR/coverage
cmake -DCMAKE_BUILD_TYPE=Debug -DE2D_BUILD_WITH_COVERAGE=ON ../..
cmake --build . -- -j8
ctest --verbose
lcov -d . -c -o "coverage.info"
lcov -r "coverage.info" "*/Xcode.app/*" "*/untests/*" "*/3rdparty/*" "*/modules/*" -o "coverage-filtered.info"
lcov -d . -z
genhtml -o "html" "coverage-filtered.info"
open html/index.html