summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2024-03-02 22:27:20 +0100
committerRobert Griebl <robert.griebl@qt.io>2024-03-05 12:50:19 +0000
commit57a2763d645754be16f2ac508abec5015a345df5 (patch)
tree89f3561b38233baeadcf35478f59f1eab2d09ba2
parent38ee815979759e8e245b433c0f0600f71560947c (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.txt9
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}