From ea7ecd6d3229da0624aaa309f8a5da8a91d77c3e Mon Sep 17 00:00:00 2001 From: iphydf Date: Sat, 17 Mar 2018 04:37:21 +0000 Subject: [PATCH] Add COVERAGE cmake flag for clang. This only works with clang/llvm. Coveralls support needs to be added later. --- CMakeLists.txt | 7 +++++++ cmake/CompileGTest.cmake | 1 + 2 files changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 20182fbb..1f18988c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,6 +89,12 @@ if(NOT MSVC) add_flag("-Werror") endif() + option(COVERAGE "Track code coverage" OFF) + if(COVERAGE) + add_flag("-fprofile-instr-generate") + add_flag("-fcoverage-mapping") + endif() + option(DEBUG "Enable assertions and other debugging facilities" OFF) if(DEBUG) set(MIN_LOGGER_LEVEL DEBUG) @@ -457,6 +463,7 @@ function(auto_test target) if(NOT ARGV1 STREQUAL "DONT_RUN") add_test(NAME ${target} COMMAND ${CROSSCOMPILING_EMULATOR} auto_${target}_test) set_tests_properties(${target} PROPERTIES TIMEOUT "${TEST_TIMEOUT_SECONDS}") + set_property(TEST ${target} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${target}.profraw") endif() endif() endfunction() diff --git a/cmake/CompileGTest.cmake b/cmake/CompileGTest.cmake index 1974901e..b7e0175f 100644 --- a/cmake/CompileGTest.cmake +++ b/cmake/CompileGTest.cmake @@ -54,5 +54,6 @@ function(unit_test subdir target) target_link_modules(unit_${target}_test toxcore gtest) set_target_properties(unit_${target}_test PROPERTIES COMPILE_FLAGS "${TEST_CXX_FLAGS}") add_test(NAME ${target} COMMAND ${CROSSCOMPILING_EMULATOR} unit_${target}_test) + set_property(TEST ${target} PROPERTY ENVIRONMENT "LLVM_PROFILE_FILE=${target}.profraw") endif() endfunction()