Skip to content

Commit d4b9903

Browse files
committed
CI: track all instrumented lines in coverage report (--process-gcno)
fastcov was only processing .gcda files, which are created at runtime. Source files compiled with --coverage but never executed by tests (most of applications/ and tools/) had .gcno but no .gcda, so they were silently omitted from the report. Adding --process-gcno makes fastcov include .gcno-only files at 0% coverage, so ALL instrumented lines across libraries, applications, and tools are tracked. Expected tracked lines: ~377K (was ~67.5K).
1 parent 8470949 commit d4b9903

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

.github/workflows/_reusable-tests.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,12 @@ jobs:
207207
echo "=== Coverage diagnostics ==="
208208
echo "gcno files: $(find build -name '*.gcno' 2>/dev/null | wc -l)"
209209
echo "gcda files: $(find build -name '*.gcda' 2>/dev/null | wc -l)"
210-
# Collect coverage data with fastcov (10-100x faster than lcov)
211-
fastcov -d build -o coverage.json
210+
# Collect coverage data with fastcov (10-100x faster than lcov).
211+
# --process-gcno includes .gcno files without .gcda counterparts
212+
# so that untested source files appear in the report at 0% instead
213+
# of being silently omitted. This tracks ALL instrumented lines
214+
# across libraries, applications, and tools.
215+
fastcov --process-gcno -d build -o coverage.json
212216
# Filtered report: MNE-CPP libraries, applications, and tools
213217
fastcov -C coverage.json --lcov -o coverage_filtered.info \
214218
--include src/libraries/ src/applications/ src/tools/ \

0 commit comments

Comments
 (0)