diff options
author | Robert Griebl <robert.griebl@qt.io> | 2024-02-20 17:49:35 +0100 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2024-02-21 18:17:11 +0100 |
commit | ac3988efd622a73a49ca8770d64e19f68bdac90d (patch) | |
tree | 5983653251878515ef0f3e4b8d7934b6575cc5d5 | |
parent | 1b6190534e3de2f9b1bea37bc3803bd061e3a628 (diff) |
Coverage: adapt to modern lcov/gcov command line options
Change-Id: Ib525623d20ca58c74c89aa2ab6a569e1a6a7de5a
Pick-to: 6.7 6.6 6.5
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
-rw-r--r-- | CMakeLists.txt | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 30f54cc1..9885c6e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,7 +69,7 @@ if(AM_COVERAGE) set(QT_BUILD_TESTS ON) set(QT_BUILD_TESTS_BY_DEFAULT ON) - add_compile_options(-fprofile-arcs -ftest-coverage) + add_compile_options(-fprofile-arcs -ftest-coverage -fprofile-update=atomic) add_link_options(-fprofile-arcs -fprofile-generate --coverage) add_compile_definitions(QT_AM_COVERAGE) link_libraries(gcov) @@ -91,18 +91,20 @@ if(AM_COVERAGE) endif() add_custom_target(check_coverage - find . -name \"*.gcov-info\" -print0 | xargs -0 rm -f && - lcov -c -i -d . --rc lcov_branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/base.gcov-info" >/dev/null 2>&1 && - ctest --test-dir tests/auto --verbose && - lcov -c -d . --rc lcov_branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/test.gcov-info" >/dev/null && - lcov --rc lcov_branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/temp.gcov-info" `find . -name \"*.gcov-info\" | xargs -n1 echo -a` >/dev/null && - lcov --rc lcov_branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/qtapplicationmanager.gcov-info" -r temp.gcov-info ${GCOV_EXCLUDE} >/dev/null && - rm -f base.gcov-info test.gcov-info temp.gcov-info && - genhtml -o branch-coverage -s -f --legend --branch-coverage --rc lcov_branch_coverage=1 --demangle-cpp qtapplicationmanager.gcov-info >/dev/null && - echo \"\\n\\nCoverage info is available at file://`pwd`/branch-coverage/index.html\\n\" + COMMAND sh -c 'which lcov >/dev/null || { echo "The lcov tool is not available." && exit 2 \; }' + COMMAND sh -c 'which genhtml >/dev/null || { echo "The genhtml tool is not available." && exit 2 \; }' + COMMAND find . \\\( -name \"*.gcov-info\" -o -name \"*.gcda\" \\\) -print0 | xargs -0 rm -f + COMMAND lcov -keep-going -c -i -d . --rc branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/base.gcov-info" + COMMAND ctest --test-dir tests/auto --verbose + COMMAND lcov -keep-going -c -d . --rc branch_coverage=1 --rc geninfo_auto_base=1 -o "${CMAKE_CURRENT_BINARY_DIR}/test.gcov-info" + COMMAND lcov -keep-going --rc branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/temp.gcov-info" `find . -name \"*.gcov-info\" | xargs -n1 echo -a` + COMMAND lcov -keep-going --rc branch_coverage=1 -o "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.gcov-info" -r temp.gcov-info ${GCOV_EXCLUDE} + COMMAND rm -f base.gcov-info test.gcov-info temp.gcov-info + COMMAND genhtml -o coverage-report -s -f -t "${PROJECT_NAME}" --legend --branch-coverage --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 --demangle-cpp "c++filt" ${PROJECT_NAME}.gcov-info + COMMAND echo \"\\n\\nCoverage info is available at file://`pwd`/coverage-report/index.html\\n\" DEPENDS - qtapplicationmanager create-test-packages + qtapplicationmanager create-test-packages tests/auto/install USES_TERMINAL ) endif() |