From eb6d5ba499ff921dcc96fe09bd358bb979f8f727 Mon Sep 17 00:00:00 2001 From: Arif Hasanic Date: Sun, 1 Feb 2026 19:55:09 +0100 Subject: [PATCH] create test and coverage ci --- .gitea/workflows/ci.yml | 17 ++++------------- CMakeLists.txt | 12 ++++++++---- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 2ce3580..641edad 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -34,18 +34,9 @@ jobs: - name: Build run: cmake --build build --config Debug -j "$(nproc)" - - - name: Test + + - name: Test & Coverage run: | cd build - ctest --output-on-failure - - - name: Coverage - run: | - GCOV_TOOL="$(/usr/bin/g++ -print-prog-name=gcov)" - echo "Using gcov: $GCOV_TOOL" - "$GCOV_TOOL" --version - lcov --gcov-tool "$GCOV_TOOL" --capture --directory build --output-file build/coverage.info - lcov --remove build/coverage.info "/usr/*" --output-file build/coverage.info - lcov --summary build/coverage.info - genhtml build/coverage.info --output-directory build/coverage-html + ctest -T Test --output-on-failure + ctest -T Coverage --output-on-failure diff --git a/CMakeLists.txt b/CMakeLists.txt index 4985e33..0c2aab6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,13 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG -Wall -Wextra -Wpedantic -Werror") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -Wall -Wextra -Wpedantic") +if(ENABLE_COVERAGE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g --coverage") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g --coverage") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") + set(CTEST_COVERAGE_COMMAND "gcov") +endif() + find_package(PkgConfig REQUIRED) pkg_check_modules(GTKMM REQUIRED gtkmm-4.0) @@ -72,10 +79,7 @@ target_include_directories(bar_tests PRIVATE ) target_link_libraries(bar_tests PRIVATE Catch2::Catch2WithMain) -if(ENABLE_COVERAGE) - target_compile_options(bar_tests PRIVATE -O0 -g --coverage) - target_link_options(bar_tests PRIVATE --coverage) -endif() +# Coverage flags are set globally when ENABLE_COVERAGE is ON. include(Catch) catch_discover_tests(bar_tests)