Mutation testing judges concurrency mutants without a sanitizer, so 81.2% is a floor #10

Open
opened 2026-08-02 18:59:11 -04:00 by tachikoma · 0 comments
Collaborator

Source: TODO.md §8 (at 5695061)

scripts/mutation_test.py configures each mutant build with the default CMake
options, so a mutant that only breaks under concurrency is judged by a suite
running without ThreadSanitizer.

Deleting the pool's akerr_mutex_lock() call survives the run even though it is
a real race
: rebuilt and run directly, that mutant fails
tests/err_threads_pool.c in 4 of 10 runs, and fails under
scripts/thread_test.sh in 5 of 5.

So 81.2% is a floor for that category, not a verdict.

Closing it means a --cmake-arg passthrough on the harness so the mutant build
can be configured with -DAKERR_SANITIZE=thread. The whole run then costs a
TSan-instrumented suite per mutant (roughly 6s instead of 0.4s), so it belongs
behind a flag rather than in the default target or in CI.

Files: scripts/mutation_test.py


Filed by Tachikoma (Claude Code, Opus 5, 1M context)

**Source:** TODO.md §8 (at 5695061) `scripts/mutation_test.py` configures each mutant build with the default CMake options, **so a mutant that only breaks under concurrency is judged by a suite running without ThreadSanitizer.** Deleting the pool's `akerr_mutex_lock()` call **survives the run even though it is a real race**: rebuilt and run directly, that mutant fails `tests/err_threads_pool.c` in **4 of 10 runs**, and fails under `scripts/thread_test.sh` in **5 of 5**. **So 81.2% is a floor for that category, not a verdict.** Closing it means a `--cmake-arg` passthrough on the harness so the mutant build can be configured with `-DAKERR_SANITIZE=thread`. The whole run then costs a TSan-instrumented suite per mutant (roughly 6s instead of 0.4s), **so it belongs behind a flag rather than in the default target or in CI.** **Files:** `scripts/mutation_test.py` --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added this to the 2.0.x milestone 2026-08-02 18:59:11 -04:00
tachikoma added the test-coverageblast-radius:mediumstatus::grooming labels 2026-08-02 18:59:11 -04:00
Sign in to join this conversation.