Skip to content

Commit 815c2e6

Browse files
Align coverage docs with toggle-advisory semantics #ci-float
Follow-up review caught three stale doc spots that still asserted the old toggle-mandatory / ptype-blind behavior after the gate semantics changed: - zkf_coverage.py module docstring: --gate is per-PR line-only (not "historical"), --full is line+branch mandatory with toggle advisory (not "line, branch, OR toggle"). - zkf_coverage.py HTML report empty-state: "every line and branch covered (toggle advisory)" instead of implying toggle is gated. - Makefile: the verify-float-extended block said "line+branch+toggle coverage closure"; toggle is advisory, so "line+branch coverage closure (toggle advisory)". Docs/comments only; no logic or RTL change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 75a08ff commit 815c2e6

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ coverage-float-gate:
103103

104104
## Deep-tier-only extended sweep: fills the parity/relation/WINT parameter gaps (correctness, Icarus) and
105105
## drives a curated set of exhaustive small-format Verilator runs into build/float/verilator-toggle for
106-
## full line+branch+toggle coverage closure. Per-PR verify/verify-float never invoke this.
106+
## line+branch coverage closure (toggle reported advisory). Per-PR verify/verify-float never invoke this.
107107
verify-float-extended: library
108108
@rm -rf build/float/icarus-ext build/float/verilator-toggle
109109
@$(FLOAT_PYTEST) -m deep

float/tb/zkf_coverage.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111
1212
Gating modes:
1313
14-
* ``--gate`` : fail on any uncovered executable LINE (historical behaviour, used by per-PR CI).
15-
* ``--full`` : fail on any uncovered line, branch, OR toggle point. Used by the deep tier
16-
(``coverage-float-gate-full``).
14+
* ``--gate`` : per-PR tier (used by ``coverage-float-gate``) - fail on any uncovered LINE point only.
15+
Branch is gated by ``--full``; toggle coverage is advisory and never gated here.
16+
* ``--full`` : deep tier (used by ``coverage-float-gate-full``) - fail on any uncovered LINE or BRANCH
17+
point. TOGGLE coverage is reported as advisory but is never fatal.
1718
1819
Verilator coverage points are keyed per parameterisation AND per hierarchy instance, but the *net
1920
name* (``o`` field) is parameter- and instance-independent. We merge points by
@@ -232,7 +233,7 @@ def bar(st: Stats) -> str:
232233
detail = (
233234
"<h2>Uncovered points</h2><table><thead><tr><th>Source</th><th>Kind</th><th>Line</th>"
234235
"<th>Net / block</th></tr></thead><tbody>" + "\n".join(detail_rows) + "</tbody></table>"
235-
if detail_rows else "<h2>Uncovered points</h2><p class='good'>None — every line, branch, and toggle covered.</p>"
236+
if detail_rows else "<h2>Uncovered points</h2><p class='good'>None — every line and branch covered (toggle advisory).</p>"
236237
)
237238

238239
genhtml_link = ("<p><a href='lcov/index.html'>Detailed line drill-down (genhtml) &rarr;</a></p>"

0 commit comments

Comments
 (0)