You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b87420a
Browse filesBrowse the repository at this point in the historyBrowse files
test: prove subprocess and production coverage (Fixes#534)
Verify exact idle/info child profiles and real handler/transport/writer counter increases. Add conservative production/changed-line diagnostics without altering existing raw coverage gates, and measure native macOS against the exact base on one runner.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/QUALITY_SNAPSHOTS.md
+47Lines changed: 47 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,6 +113,53 @@ for the new client clocks.
113
113
114
114
Linux and Windows line and function coverage are compared with the exact base commit. A decrease greater than 0.01 percentage points blocks the pull request. Coverage artifacts and comments remain available for inspection even when the comparison fails.
115
115
116
+
### Production-focused and subprocess evidence
117
+
118
+
The raw workspace percentages still include inline tests and retain the same exact-base
119
+
0.01 percentage-point line/function gate. Supplemental `production-coverage/report.md` and
120
+
schema-1 `details.json` separate executable production/test lines, list uncovered production
121
+
lines, and intersect added/modified Rust lines with executable production lines. Changed files
122
+
without instrumentation are listed explicitly, never assumed covered. These diagnostics do not
123
+
introduce a fabricated baseline, change the raw denominator, or replace regression protection.
124
+
125
+
Classification excludes integration-test/benchmark directories and Rust items explicitly marked
126
+
`#[cfg(test)]` or `#[test]`, including inline modules and test-only helper functions. It masks
127
+
strings, raw/byte strings, characters, and nested comments before matching item boundaries.
128
+
Helpers outside those boundaries and complex conditional attributes remain conservatively in the
129
+
production category; this is a source-focused diagnostic, not full Rust conditional-compilation
130
+
analysis. Invalid/missing LCOV, missing source, inconsistent hit summaries, and source-line
131
+
mismatches fail the reporting step. LLVM summaries can include more entries in `LF`/`LH`
132
+
than the unique `DA` source lines (observed in real Windows exports). That deficit is reported
133
+
per file (including unmatched summary hits) and conservatively retained as uncovered production,
134
+
never dropped from the denominator or silently assigned coverage.
135
+
Changed lines without `DA` records are listed separately in JSON, including non-executable syntax;
136
+
they are not silently considered covered.
137
+
138
+
Every coverage job opts into `normal_shutdown_records_pid_unique_server_profiles` through
139
+
`PET_SUBPROCESS_COVERAGE_PROOF`. The test requires cargo-llvm-cov's absolute, PID-unique output
140
+
pattern, launches idle and known-`info` PET subprocesses, closes stdin, and requires successful
141
+
bounded exit and nonempty profiles for those exact child PIDs. The raw profiles stay in the normal
142
+
cargo-llvm-cov collection directory and are included in the workspace report. The verifier also
143
+
merges each child's profiles separately with the matching Rust LLVM tools and proves zero idle
144
+
versus positive `info` execution at the real handler, transport dispatch, and response writer.
145
+
The uploaded `subprocess-coverage/proof.json` and isolated LCOV exports retain that evidence;
146
+
a killed child, missing profile, or absent execution witness fails rather than appearing covered.
0 commit comments