From 2a5a2c96b51d04075b4db5c4185c3c3722e4a84b Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 02:04:17 +0300 Subject: [PATCH 1/9] ChaosTests: Build with --coverage in Debug --- ChaosTests/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) 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) From 07663decf9d2b35909675c0389994567659a9b53 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 02:05:36 +0300 Subject: [PATCH 2/9] ChaosCi: Report coverage via lcov + genhtml --- .gitea/workflows/ChaosCi.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index 4d01363..cb6a581 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,15 @@ 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 --ignore-errors inconsistent -c -d build-debug/ -o lcovout + genhtml lcovout -o coverage-report + + - uses: actions/upload-artifact@v4 + with: + name: CoverageReport + path: coverage-report/ + if-no-files-found: error From 18bcd87f814976f43f9df4e59ba5e95ef1cb6293 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 02:11:07 +0300 Subject: [PATCH 3/9] Ignore lcov mismatch errors --- .gitea/workflows/ChaosCi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index cb6a581..b04aaac 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -37,7 +37,7 @@ jobs: - name: Process coverage data run: | - lcov --ignore-errors inconsistent -c -d build-debug/ -o lcovout + lcov --ignore-errors inconsistent,mismatch -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - uses: actions/upload-artifact@v4 From 1a999a7dd3dffacdd7f89878b53697f71488b520 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 02:18:02 +0300 Subject: [PATCH 4/9] Downgrade to actions/upload-artifact@v3 --- .gitea/workflows/ChaosCi.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index b04aaac..837f242 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -40,8 +40,9 @@ jobs: lcov --ignore-errors inconsistent,mismatch -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v3 with: name: CoverageReport path: coverage-report/ if-no-files-found: error + include-hidden-files: true From b02685d29f11fb0204e424c2d3b10fece9fb16b7 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 02:25:44 +0300 Subject: [PATCH 5/9] Give the upload-artifact step a proper name --- .gitea/workflows/ChaosCi.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index 837f242..7dbafdc 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -40,7 +40,8 @@ jobs: lcov --ignore-errors inconsistent,mismatch -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - - uses: actions/upload-artifact@v3 + - name: Upload coverage report + uses: actions/upload-artifact@v3 with: name: CoverageReport path: coverage-report/ From 9a764c06dbf614c90fa8df017b846dafc7d8aa88 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 22:45:09 +0300 Subject: [PATCH 6/9] Run lcov with --no-external flag set --- .gitea/workflows/ChaosCi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index 7dbafdc..ffc2e1a 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -37,7 +37,7 @@ jobs: - name: Process coverage data run: | - lcov --ignore-errors inconsistent,mismatch -c -d build-debug/ -o lcovout + lcov --ignore-errors inconsistent,mismatch --no-external -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - name: Upload coverage report From 15bb6632818a0d9fd21dfe375ce30377480ba4a6 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 22:51:38 +0300 Subject: [PATCH 7/9] Revert "Run lcov with --no-external flag set" Library headers are considered externals in this case. This reverts commit 9a764c06dbf614c90fa8df017b846dafc7d8aa88. --- .gitea/workflows/ChaosCi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index ffc2e1a..7dbafdc 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -37,7 +37,7 @@ jobs: - name: Process coverage data run: | - lcov --ignore-errors inconsistent,mismatch --no-external -c -d build-debug/ -o lcovout + lcov --ignore-errors inconsistent,mismatch -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - name: Upload coverage report From 612b11b02f812f75f60cc8f72d91872964f909d0 Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 22:59:55 +0300 Subject: [PATCH 8/9] Run lcov with proper --exclude flags to eliminate unwanted coverage data generation --- .gitea/workflows/ChaosCi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index 7dbafdc..9fb7318 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -37,7 +37,7 @@ jobs: - name: Process coverage data run: | - lcov --ignore-errors inconsistent,mismatch -c -d build-debug/ -o lcovout + lcov --ignore-errors inconsistent,mismatch --exclude '*/usr/*' --exclude '*/_deps/*' --exclude '*/ChaosTests/*' -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - name: Upload coverage report From 01d7d19ee63f42bedd0579de82a9ca8831da02af Mon Sep 17 00:00:00 2001 From: hashlag Date: Wed, 28 Jan 2026 23:06:47 +0300 Subject: [PATCH 9/9] Remove lcov --ignore-errors flag. --- .gitea/workflows/ChaosCi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index 9fb7318..baa728f 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -37,7 +37,7 @@ jobs: - name: Process coverage data run: | - lcov --ignore-errors inconsistent,mismatch --exclude '*/usr/*' --exclude '*/_deps/*' --exclude '*/ChaosTests/*' -c -d build-debug/ -o lcovout + lcov --exclude '*/usr/*' --exclude '*/_deps/*' --exclude '*/ChaosTests/*' -c -d build-debug/ -o lcovout genhtml lcovout -o coverage-report - name: Upload coverage report