diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index 4d01363..baa728f 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -15,7 +15,7 @@ jobs: - name: Install run: | sudo apt-get update - sudo apt-get install -y build-essential cmake valgrind + sudo apt-get install -y build-essential cmake valgrind lcov - name: Configure and build [Debug] run: | @@ -33,4 +33,17 @@ jobs: run: valgrind --leak-check=full --track-origins=yes --show-leak-kinds=all ./build-debug/ChaosTests/ChaosTests - name: Run benchmarks - run: ./build-release/ChaosBenches/ChaosBenches \ No newline at end of file + run: ./build-release/ChaosBenches/ChaosBenches + + - name: Process coverage data + run: | + lcov --exclude '*/usr/*' --exclude '*/_deps/*' --exclude '*/ChaosTests/*' -c -d build-debug/ -o lcovout + genhtml lcovout -o coverage-report + + - name: Upload coverage report + uses: actions/upload-artifact@v3 + with: + name: CoverageReport + path: coverage-report/ + if-no-files-found: error + include-hidden-files: true diff --git a/ChaosTests/CMakeLists.txt b/ChaosTests/CMakeLists.txt index 5633e60..f5166ea 100644 --- a/ChaosTests/CMakeLists.txt +++ b/ChaosTests/CMakeLists.txt @@ -26,6 +26,11 @@ target_include_directories(ChaosTests PRIVATE $ ) +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + target_compile_options(ChaosTests PRIVATE --coverage) + target_link_options(ChaosTests PRIVATE --coverage) +endif() + include(GoogleTest) gtest_discover_tests(ChaosTests)