From d7206766d9b0624f30dfdc789d98da5b245b5cd1 Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Mon, 26 Dec 2022 15:13:21 +0700 Subject: [PATCH 1/3] add compiler flags for enabling code coverage test --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e8458c7..943564b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,9 +12,12 @@ target_include_directories(example PUBLIC include) if(BUILD_TESTING) enable_testing() + cpmaddpackage("gh:catchorg/Catch2@3.2.0") include("${Catch2_SOURCE_DIR}/extras/Catch.cmake") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -fPIC -O0") + add_executable(example_test test/example_test.cpp) target_link_libraries(example_test PRIVATE example Catch2::Catch2WithMain) catch_discover_tests(example_test) From 9a719d75fc206624921658bc2fea4911449ce5ef Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Mon, 26 Dec 2022 16:31:27 +0700 Subject: [PATCH 2/3] check for code coverage on build workflow using gcovr --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4c4b579..ac1b453 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,3 +41,9 @@ jobs: - name: Run tests run: ctest --test-dir build --verbose + + - name: Install gcovr + run: pip3 install gcovr + + - name: Test for code coverage + run: gcovr --fail-under-line 80 From c926cee0d112b6b8106370056438f4e79f920604 Mon Sep 17 00:00:00 2001 From: Alfi Maulana Date: Mon, 26 Dec 2022 16:38:34 +0700 Subject: [PATCH 3/3] exclude build directory while checking for code coverage --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac1b453..7ebde77 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,4 +46,5 @@ jobs: run: pip3 install gcovr - name: Test for code coverage - run: gcovr --fail-under-line 80 + run: gcovr -e 'build/*' --fail-under-line 80 +