test(win): avoid deep-checkout linker failure in nested AF-02 corpus test
Closed
TH
7d ago+55+55+01234567890123456789-11-11-01234567890123456789
Purpose
A focused executable repair for the long-path Windows failure tracked by #190. The corpus-bijection integration test launches a nested cargo run to invoke the AF-02 corpus verifier. Without an explicit nested target directory, Cargo may place Windows MSVC link outputs under a checkout path exceeding MAX_PATH.
Change (one unprotected test file)
- Give the nested
cargosubprocess an explicitCARGO_TARGET_DIRon Windows only. - The path is a per-test temporary directory under the host's temp root, rather than the deep repository worktree.
- Keep that TempDir alive across all nested verifier calls within one test, preserving reuse, then clean it up when the test exits.
- Preserve the original genuine canonical corpus/assertion validation, tampered corpus and registry failures, and expected output/evidence assertions. Linux/macOS execution is unchanged.
- No new dependencies, no test skip, no pinned AF-02 schema, verifier, workflow, rule, oracle, or Cargo manifest changes.
Qualification
- Inspect actual test source at observed main
f82565cca917d119e1c774b2c470e2ac20e0d6dd. - Current head:
966cd81a5136a6e5debee79d83e6a90bb4abe2de; exact-head CI and genuine independent review required. - The reported old Windows failure was observed in the V3.2 audit, not reproduced by this change alone. AF-03 Windows verification (long-path reproduction, regression, constrained resource measurements) remains required before issue #190 closure.
- Check main/protected source identities and do not infer success from Linux-only CI.
- Merge only as normal merge commit after required approvals and successful checks; V2 remains execution authority.
Closes no issue automatically. Related: #190; G51 planning PR #188; V3.2 planning PR #187.
Summary by cubic
Fixes the Windows linker failure in the AF-02 corpus test by pointing nested cargo builds at a short temporary target directory, and tightens the tamper tests so a failed build no longer counts as a rejected corpus.
- Sets
CARGO_TARGET_DIRon Windows only, using a per-test temp directory that lives for the test and is cleaned up on exit. - Tampered corpus and registry tests now require the verifier's own rejection diagnostic; a cargo build or link failure alone no longer passes.
- Linux/macOS execution and all positive corpus and output assertions are unchanged; adds no dependencies and skips no tests.