-
Notifications
You must be signed in to change notification settings - Fork 1
Walk the mutation ratchet back down: 210 → 0 (the ground lost while #381's gate was blind) #382
Description
Follow-up to #381.
#381 fixes the Mutation Testing gate to read the path cargo-mutants actually
writes, and re-baselines MAX_MISSED from 142 to the measured 210.
That is a raise, and it should be uncomfortable. It is honest only because 142
was never in force — the gate read a non-existent path for four months, so no
value it held was ever enforced. 210 is the first number this gate has ever
actually checked against. But the direction of travel is wrong and this issue
exists so that is not quietly accepted.
Measured baseline
main @ cd4d429, run 30563879100, artifact mutants-report:
| outcome | count |
|---|---|
| missed (survived) | 210 |
| caught | 603 |
| unviable | 793 |
| timeout | 2 |
| total mutants | 1608 |
Against 813 viable mutants (caught + missed), that is a 74.2% kill rate.
History
- 5d6d98a (2026年03月22日): "Current survivors: 142 (down from 220)." — hand-measured.
- today: 210.
The ratchet was written to walk 142 → 0. Unenforced, it drifted 142 → 210.
Work
Walk MAX_MISSED back down, lowering the constant with each batch of tests so
the ratchet can never re-loosen:
- 210 → 142 (recover the ground lost while the gate was blind)
- 142 → 100
- 100 → 50
- 50 → 0
mutants-out/mutants.out/missed.txt in the job artifact lists every survivor
with file, line, and the exact mutation, so each step is a concrete work-list
rather than an aspiration. The 793 unviable mutants are also worth a look — an
unviable mutant is one whose mutated form does not compile, which is usually
fine but can also indicate a mutation operator that never meaningfully applies to
this crate.
Do not raise this number again. If a change would push survivors above the
threshold, the change needs tests, not a bigger constant.