Repository navigation
test(claw): kill the real check_state.t27 and merge_lane.t27 mutation survivors - #10726
Merged
Merged
Conversation
… survivors A mutation sweep left 7 of 40 check_state.t27 mutants alive, 3 of them real. It left 18 of 92 merge_lane.t27 mutants alive, 12 of them real. Ten new tests kill all 15. They cover: - every wait status - the 1024-row and 4096-row caps (none had a test) - a blank line, which was counted as an unreadable row - an open run of age 0 - label-only with no missing label - an empty event name - the letters a and z in an event name - the dashboard reading each row from its first byte The carriage-return tests in both specs wrote "\r", which in a t27 literal is a backslash and an r. They now write the byte 13 and assert that it is there (#10722). Production code is unchanged. A full re-sweep leaves 36/40 and 86/92, and every mutant left is an equivalent one. check_state 17/17 and merge_lane 30/30 pass in t27c and t27b, with 0 vacuous passes. The 7 committed gen/c/claw files are byte-identical. Both seals are resaved; 32/32 seals verify. Closes #10724 Closes #10722 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 19, 2026 00:10
Contributor
gHashTag
added a commit
that referenced
this pull request
Oct 19, 2026
#10741) Three tests: run ids of 0 and 20 digits, the 1024-row cap in both readers, and a blank line before a re-run at the cap. 41 -> 46 of 51 mutants; the 5 left are equivalent. Reseals CheckLatest and RequiredRed, which still cited check_state.t27 from before #10726. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 19, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 19, 2026
#10726 wrote t_rows (check_state) and t_rep (merge_lane) with the same body, and master has been red on duplicate-bodies since. merge_lane now uses check_state's t_rows. Reseals CheckState, MergeLane, CheckLatest and RequiredRed. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
This PR adds tests to two TRI CLAW law specs, after a mutation sweep showed what their tests let through. Only tests change; production code does not.
specs/claw/check_state.t27reads a PR's check rollup into pass, failing, pending and unreadable, and gives a verdict.specs/claw/merge_lane.t27measures the auto-merger: its lane, its yield and its share of the queue.New tests:
every_wait_status_with_no_conclusion_is_pendingPENDINGandREQUESTEDnot counted as waiting (or->and)the_row_cap_reads_1024_rows_and_refuses_the_nextthe_dashboard_reads_each_row_from_its_first_byteCONTEXTbecomesONTEXTand counts as failinga_blank_line_is_not_a_row_in_any_readeran_open_run_of_age_zero_is_readthe_merger_rows_cap_at_4096_and_refuse_the_nextand theyieldandsharetwinsan_empty_run_is_label_only_only_when_a_label_was_missingan_event_name_is_lower_case_letters_from_a_to_zaorzrefused. No existing test event contained anaCloses #10722, too. The carriage-return tests in both specs wrote
"\r", which in a t27 literal is a backslash and anr, so neither test contained a carriage return. The tests now write the byte 13, then assert that the byte is there before they read the row:a_carriage_return_after_the_conclusion_is_unreadableanda_line_that_is_only_a_carriage_return_is_an_unreadable_rowa_carriage_return_or_a_near_name_is_not_the_mergerThe survivors that stay are listed with a reason each in #10724. Each one either reads at
ls == n, whereqc_line_endreturnsn, or flips a comparison that cannot change the output.Verification (Railway lab)
test-reportand t27b: check_state 17 of 17 (was 12), merge_lane 30 of 30 (was 23), 0 vacuous passes.gen-c: the 7 committedgen/c/claw/*.cfiles are byte-identical. Neither spec has committed C.seal --saveforclaw_ClawCheckStateandclaw_ClawMergeLane, thenseal --verifyoverspecs/claw/*.t27plusspecs/verified/gen_file_check.t27: 32 of 32.Self-check
text.t27, which this PR does not touch. Master'stext.t27is 968755…; the old seals recorded b65da6…, a version from before test(claw): kill the three text.t27 mutation survivors #10714. 21 claw seals on master record a stale dependency hash like this (25 entries). A negative control shows thatseal --verifynever compares dependency hashes: a zeroed dependency hash still prints "all hashes MATCH". Filed as seal --verify never checks dependency hashes; 21 claw seals record stale ones #10727.🤖 Generated with Claude Code