|
Ran
|
Jobs
1
|
Files
13
|
Run time
1min
|
Badge
README BADGES
|
push
github
Fix coverage percentage by excluding compiler-generated throw branches (#23) * Revert "Normalize occupancies prior to configuration recovery (#21)" This reverts commit 8ede7ac58. * Version checks * Reapply "Normalize occupancies prior to configuration recovery (#21)" This reverts commit 2b9aac9c5. * Fix * Exclude compiler-generated throw branches from coverage The reported coverage percentage dropped from 93.99% to 52.69% on 2025-10-03 with no corresponding change to the code. The cause was gcovr 8.4, released 2025-09-27 and picked up by the workflow's unpinned `pip install gcovr`. Two changes landed in that release: - gcovr began emitting a `branches` array in its coveralls report, and coveralls folds branches into the headline percentage as (covered_lines + covered_branches) / (lines + branches). - gcovr 8.4 also miscounted lines in headers and templates, inflating relevant lines from 342 to 694. This was fixed in 8.5. Line coverage never regressed; it has been near 93% throughout. Only the denominator changed. Branch coverage in a header-only template library is dominated by branches that cannot be covered by any test: - Exception landing pads. GCC emits a branch to the unwinder for any operation that may throw, so `return {a, b};` and `v.emplace_back(x)` each report an uncovered branch despite containing no conditional. gcov labels these "(throw)", and they disappear under -fno-exceptions. - assert() failure edges, reachable only by aborting the process. - doctest's CHECK() internals. A single passing assertion reports 14 of 24 branches uncovered, because a passing assertion never takes the failure-message, exception, or debugger-break paths. Each of these is multiplied by the number of template instantiations, since gcov reports a source line's branches once per instantiation. A single CHECK() inside a two-type TEST_CASE_TEMPLATE contributes about ... (continued)
606 of 813 branches covered (74.54%)
Branch coverage included in aggregate %.
426 of 457 relevant lines covered (93.22%)
99.43 hits per line
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 35271485144.1 | 13 |
81.26
|
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|