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
fix(scripts): measure-self-test-floor's probe awards HELD only on a printed handshake (#15372)
`probeEarlyReturn` decided its verdict on the mutated run's exit code alone
(`mut.status === 0 ? 'DEFEATED' : 'HELD'`), so a dispatch spelled
`process.exit(runSelfTest() === 0 ? 0 : 1)` scored HELD: the early return makes
`runSelfTest()` yield `undefined`, `undefined === 0` is false, and the process
exits 1 having printed ZERO BYTES. Nothing noticed anything. The row already
carried `mutatedBytes` and `mutatedHead`; the verdict just did not read them.
A non-zero exit is now a hold only when the mutated run also SPOKE (printed a
non-blank line — the same reading `mutatedHead` publishes and the HELD listing
quotes). The silent case gets its own verdict, ACCIDENT, tallied and listed
apart so the census never counts it among the holds. The verdict deliberately
does not match refusal WORDING: the repair landed in three spellings and
teaching this verdict any of them is the coupling #14968 is filed to remove.
Additive only: `mutatedSpoke` joins the row, no `--json` key is renamed, and
`classifyFloor` is untouched (ROSTER/COUNT/NONE are identical).
The instrument ships no `--self-test`; its controls run inline on every
invocation. A third fixture joins them — the measured accident shape — asserted
to read ACCIDENT with a non-zero exit and zero bytes, plus the other direction:
the handshake-protected fixture must be one that SPOKE when defeated.
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
Co-authored-by: Claude <noreply@anthropic.com>
`POSITIVE CONTROL FAILED: the accident fixture no longer produces the measured shape (exit ${a.mutatedExit}, ${a.mutatedBytes} byte(s)); the ACCIDENT verdict above would then be passing for the wrong reason`);
console.log('\nHole 2 -- silently defeated by an early `return` in the self-test (MEASURED):');
404
-
console.log(` ${defeated.length} DEFEATED, ${held.length} HELD, ${unmeasured.length} NOT MEASURED.`);
470
+
console.log(` ${defeated.length} DEFEATED, ${held.length} HELD, ${accidents.length} ACCIDENT, ${unmeasured.length} NOT MEASURED.`);
405
471
console.log(` of the defeated, ${defeated.filter((r)=>r.probe.mutatedBytes===0).length} printed NOTHING at all and still exited 0.`);
406
472
for(constrofheld)console.log(` HELD ${r.file} -- ${r.probe.mutatedHead.slice(0,96)}`);
473
+
for(constrofaccidents)console.log(` ACC ${r.file} -- exited ${r.probe.mutatedExit} printing ${r.probe.mutatedBytes} byte(s); no refusal, so NOT a hold`);
0 commit comments