---
name: cargo-test-bins-wedges-use-nextest
description: Bare `cargo test -p spt --bins` can wedge indefinitely on this codebase (leaked findstr child blocks on stdin); nextest does not. Golden is not exposed — it already runs nextest.
metadata:
  type: project
---

**IR-55, doyle, measured on HFENDULEAM 2026-08-21.** `cargo test -p spt --bins` hung twice — once for
24 MINUTES at 13.5s CPU, i.e. blocked, not spinning. The same 653 tests under
`cargo nextest run -p spt --bins --no-fail-fast` completed in **22.2s, 653 passed, 0 skipped**.

Cause: a test leaks a `findstr .` child under headless conhost. `findstr` with no file argument blocks
on stdin forever, and cargo's single-process harness lets one leak block every test after it. See
[[a-frontier-names-where-progress-stopped-not-the-cause]] — the tests at the stall frontier are
casualties, not the wedger.

**Golden is NOT exposed: it already runs nextest**, which is very likely why this has never surfaced
on a release-lane run. The exposure is ad-hoc triage — reaching for bare `cargo test` while chasing a
red. If you do, a hang tells you nothing about the head you are triaging.

**Count discrepancy, not a defect:** some suite reports read `652 passed / 1 failed`, others
`653 / 0`. That is `adapter_translate_proof_gates_on_commit`, which REFUSES under a `--bins`-only
invocation because its fixture is not built by it — and says so in its own message. Prebuild it:

    cargo build -p spt --bin translate_proof_fixture

Then it passes. Know this before reading two reports side by side, or the delta reads as a real
regression between them.
