diff options
author | Robert Griebl <robert.griebl@qt.io> | 2024-03-02 22:27:20 +0100 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2024-03-05 12:50:19 +0000 |
commit | 57a2763d645754be16f2ac508abec5015a345df5 (patch) | |
tree | 89f3561b38233baeadcf35478f59f1eab2d09ba2 | |
parent | 38ee815979759e8e245b433c0f0600f71560947c (diff) |
coverage: fix gcov exclude regression when using Qt developer builds
Change-Id: I35161d75c8e882fbf619252043bbbe1c8e0db9c8
Pick-to: 6.6 6.5
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
(cherry picked from commit fae4b94f1ca73c51c65de568d4106f5346a32b0d)
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
-rw-r--r-- | CMakeLists.txt | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a4c4c8f..aab37293 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,10 +86,15 @@ if(AM_COVERAGE) ) if(QT_BUILD_STANDALONE_TESTS) - # this is currently hard-coded for Coin's standalone tests + # Coin splits the build into two separate directories, so we need to merge the coverage info set(GCOV_EXTRA_FOLDER "../qtapplicationmanager_build") set(LCOV_EXTRA_ARGS -d ${GCOV_EXTRA_FOLDER}) + list(APPEND GCOV_EXCLUDE '/home/qt/work/qt/qtapplicationmanager_build/*') + elseif(QT_SOURCE_TREE) + string(REGEX REPLACE "/qtbase$" "" qtSrcDir ${QT_SOURCE_TREE}) + list(APPEND GCOV_EXCLUDE '${qtSrcDir}/*') endif() + set(COVERAGE_DEPENDS all) if(QT_WILL_INSTALL) list(APPEND COVERAGE_DEPENDS tests/auto/install) @@ -101,7 +106,7 @@ if(AM_COVERAGE) COMMAND sh -c 'lcov --version | grep -q "^lcov: LCOV version 2\." || { echo "The lcov tool must be version 2." && exit 2 \; }' COMMAND find . \\\( -name \"*.gcov-info\" -o -name \"*.gcda\" \\\) -print0 | xargs -0 rm -f COMMAND lcov -keep-going -c -i -d . ${LCOV_EXTRA_ARGS} --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 ctest --test-dir tests/auto --verbose --repeat until-pass:3 COMMAND lcov -keep-going -c -d . ${LCOV_EXTRA_ARGS} --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 . ${GCOV_EXTRA_FOLDER} -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} |