This commit is contained in:
@@ -34,18 +34,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build --config Debug -j "$(nproc)"
|
run: cmake --build build --config Debug -j "$(nproc)"
|
||||||
|
|
||||||
- name: Test
|
- name: Test & Coverage
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
ctest --output-on-failure
|
ctest -T Test --output-on-failure
|
||||||
|
ctest -T Coverage --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
|
|
||||||
|
|||||||
@@ -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_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG -Wall -Wextra -Wpedantic -Werror")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -Wall -Wextra -Wpedantic")
|
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)
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
pkg_check_modules(GTKMM REQUIRED gtkmm-4.0)
|
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)
|
target_link_libraries(bar_tests PRIVATE Catch2::Catch2WithMain)
|
||||||
|
|
||||||
if(ENABLE_COVERAGE)
|
# Coverage flags are set globally when ENABLE_COVERAGE is ON.
|
||||||
target_compile_options(bar_tests PRIVATE -O0 -g --coverage)
|
|
||||||
target_link_options(bar_tests PRIVATE --coverage)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(Catch)
|
include(Catch)
|
||||||
catch_discover_tests(bar_tests)
|
catch_discover_tests(bar_tests)
|
||||||
|
|||||||
Reference in New Issue
Block a user