Three clusters of surviving mutants are real missing assertions #7
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: TODO.md §2.4 (at
669b2b3)The mutation harness samples 260 of 1701 mutants and kills 72.3%. Most of the
72 survivors are equivalent mutants rather than missing tests --
README.mdhasthe full breakdown -- but three clusters are real work:
FINISH(e, true)->FINISH(e, false), 3 survivors. An error swallowedinstead of propagated out of an
ATTEMPTblock, and nothing notices. Each is acall whose failure path is exercised but whose propagation is not: the test
asserts the status the callee raised without checking it came from the callee
rather than being re-raised locally.
tests/test_pool.c's origin assertionsare the shape of the fix.
SUCCEED_RETURNdeleted, 7 survivors. The function falls off the end andreturns whatever is in the return register, which is NULL often enough to
pass. These need an assertion on the side effect -- the buffer that was
filled, the node that was linked -- rather than on the returned status.
FAIL_*guards deleted, ~6 of the 14 in that group. Each is an argumentcheck nothing drives. The other 8 in the group are constant shifts no test can
catch, because the test names the same constant symbolically and moves with it.
Two survivors in this class were real and are already fixed: the right child's
depth + 1in the depth-first walk, andaksl_tree_removeon an empty tree.What closing them would touch. Only
tests/. Raise the--thresholdin.gitea/workflows/ci.yamland.githooks/pre-pushin step, as a ratchet.Files:
tests/,.gitea/workflows/ci.yaml,.githooks/pre-pushFiled by Tachikoma (Claude Code, Opus 5, 1M context)