docs(review 002): fix unsatisfiable R-02 acceptance gate
The R-02 acceptance gate was a line-level grep
(`grep -v 'mod tests'`) that cannot return zero while any test uses
`.expect()` — `grep -v` filters per-line, not per-scope, so every
`.expect(` inside a `#[cfg(test)] mod tests {}` block whose
individual line lacks the literal "mod tests" still matches. The suite
has ~269 such test-only `expect` calls, making the literal gate
unsatisfiable (an impossible-goal spec bug, surfaced during Unit 1
remediation).
Replace both copies of the gate (the R-02 finding gate and the Unit 1
acceptance gate) with a scope-aware verification: either (a) a targeted
grep for the specific removed strings, or (b) file-by-file confirmation
that every remaining `.expect(` is within a `#[cfg(test)] mod tests`
boundary. The intent — no `expect` in library (non-test) code — is
unchanged; only the verification method is corrected.
This commit is contained in:
1 parent
adbd57da46
commit
db96818cb3
1 file changed
+15
-6
@@ -140,9 +140,17 @@ blocks and are fine.
|
||||
`operations.rs:415`, use `channel_open.as_ref().ok_or_else(||
|
||||
...)?.alpn.to_string()` to avoid the expect entirely.
|
||||
|
||||
**Acceptance gate:** `grep -rn '\.expect(' src/ --include='*.rs' | grep
|
||||
-v '#\[cfg(test)\]' | grep -v 'mod tests' | grep -v '#\[test\]' | grep
|
||||
-v test_support` returns no matches.
|
||||
**Acceptance gate:** no `.expect(` in non-test library code. Verify
|
||||
scope-aware — the earlier line-level grep gate (`grep -v 'mod tests'`)
|
||||
is unsatisfiable: `grep -v` filters per-line, not per-scope, so every
|
||||
`.expect(` inside a `#[cfg(test)] mod tests {}` block whose individual
|
||||
line lacks the literal `mod tests` still matches (the suite has ~269
|
||||
such test-only `expect` calls). Use either: (a) a targeted grep for the
|
||||
removed strings — `grep -rn 'expect("checked above")\|expect("stream
|
||||
mutex poisoned")' src/` returns no matches; or (b) a scope-aware check
|
||||
(e.g. `awk` state-tracking of `mod tests` blocks, or manual
|
||||
file-by-file confirmation that every remaining `.expect(` is within a
|
||||
`#[cfg(test)] mod tests` boundary).
|
||||
|
||||
## R-03 [minor] — Unnecessary `#[allow(dead_code)]` on `generate_request_id`
|
||||
|
||||
@@ -461,9 +469,10 @@ code; no unnecessary `#[allow(dead_code)]`.
|
||||
- `types.rs:436,456`: use `unwrap_or_else(|e| e.into_inner())`.
|
||||
- **R-03:** remove `#[allow(dead_code)]` from `context.rs:147`.
|
||||
**Acceptance gate:** `cargo publish --dry-run --allow-dirty` succeeds;
|
||||
`grep -rn '\.expect(' src/ --include='*.rs' | grep -v '#\[cfg(test)\]'
|
||||
| grep -v 'mod tests' | grep -v '#\[test\]' | grep -v test_support`
|
||||
returns no matches; `cargo test` green; clippy/fmt/doc clean.
|
||||
no `.expect(` in non-test library code (see R-02 for the scope-aware
|
||||
verification method — do **not** use the line-level `grep -v 'mod
|
||||
tests'` gate, it is unsatisfiable); `cargo test` green; clippy/fmt/doc
|
||||
clean.
|
||||
|
||||
## Unit 2 — Single-stream call mode tests (R-04)
|
||||
|
||||
|
||||
Reference in new issue
Block a user