From 49173b11b916d8a5166fb8f144264206a94d4ac7 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Fri, 9 May 2025 13:10:38 -0400 Subject: [PATCH] ci: enable coverage for Qt Tests --- .github/workflows/sonarcloud-analysis.yml | 12 ++++++++---- src/unittests/CMakeLists.txt | 9 +++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sonarcloud-analysis.yml b/.github/workflows/sonarcloud-analysis.yml index 4f20b74b4..ecf521d67 100644 --- a/.github/workflows/sonarcloud-analysis.yml +++ b/.github/workflows/sonarcloud-analysis.yml @@ -51,16 +51,20 @@ jobs: run: | build-wrapper-linux-x86-64 --out-dir bw-output cmake --build build -j${CPU_CORE_COUNT} - - name: Legacy tests coverage + - name: Test coverage + shell: bash env: QT_QPA_PLATFORM: offscreen - run: cmake --build build --target coverage-legacytests + run: | + tests=(`cmake --build build --target help | grep -o "^coverage-[^:]*"`) + for i in "${tests[@]}"; do + cmake --build build --target "$i" + done - name: Get coverage report paths id: coverage-paths run: | - legacytests=$(find build -name coverage-legacytests.xml) - paths="${legacytests}" + paths=$(ls -w 0 -m build/coverage-*.xml | sed 's/ //g') if [ -z "$paths" ]; then echo "Error: No coverage files found" exit 1 diff --git a/src/unittests/CMakeLists.txt b/src/unittests/CMakeLists.txt index 1501f67d6..43403fae4 100644 --- a/src/unittests/CMakeLists.txt +++ b/src/unittests/CMakeLists.txt @@ -39,6 +39,15 @@ function(create_test) set_tests_properties(${m_NAME} PROPERTIES DEPENDS ${m_DEPENDS}) set_property(GLOBAL APPEND PROPERTY ${CMAKE_PROJECT_NAME}_tests ${m_NAME}) + if(ENABLE_COVERAGE) + setup_target_for_coverage_gcovr_xml( + NAME coverage-${m_NAME} + EXECUTABLE ${m_NAME} + BASE_DIRECTORY ${CMAKE_SOURCE_DIR}/src + EXCLUDE subprojects/* ${CMAKE_BINARY_DIR}/* src/unittest/* + ) + endif() + endfunction() enable_testing()