test(swiftcheck): a truncated pipeline must fail as itself, not as a missing flag
CI 34168787988 (ubuntu Release+clang, shard 1/4) reported
FAIL: pure="1" attribute is missing from output entirely
Results: 6 passed, 1 failed rc=1 in 0.3s
while, in the SAME run, assertions 2 and 3 found pure="1" on both value() and
doubled(). Those two read the same $OUTPUT and their python helper ends in
sys.exit(1), so they cannot pass by falling through an empty document; assertion
6 confirmed the fixture parsed, and assertion 7 confirmed two runs byte-identical.
A single run cannot both have and not have the attribute.
The difference between the failing assertion and the passing ones was never the
product -- it was how each reached the bytes. Assertion 1 went through
`echo | tr | sed` captured in $( ); assertions 2 and 3 used a here-string. Under
-j 3 that three-process pipeline came back short, and a truncated LINES greps
exactly like an absent attribute. Rerunning the same job on the same commit
passed, which is what a product bug does not do.
Worth stating plainly because it cost an hour: the failure correlated perfectly
with Release+clang, which reads like an optimizer-only bug -- the exact thing the
flavour matrix exists to catch. It was one failing job out of twenty-five, and
the correlation was coincidence. Config correlation on a single observation is
not evidence of a config-dependent cause.
Two changes, so this can never again read as a product failure:
- assertion 1 greps $OUTPUT directly, the same bytes the python assertions read
- LINES is guarded: shorter than half of OUTPUT fails LOUDLY as a gate fault
The guard is deliberately not a silent retry. A gate that quietly repairs its own
plumbing stops reporting that the plumbing is broken.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> J
joyful-ii-V-I committed
321ee8394289d6d85e66f8909698d0cd3dfdd54c
Parent: bacfa3b