This commit is contained in:
@@ -35,17 +35,8 @@ 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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user