create test and coverage ci
All checks were successful
ci / build (push) Successful in 26s

This commit is contained in:
2026-02-01 19:55:09 +01:00
parent 5320831c15
commit eb6d5ba499
2 changed files with 12 additions and 17 deletions

View File

@@ -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

View File

@@ -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)