Repository navigation
test(claw): mutation sweeps of required_red, queue_cost and shape_race -- 15 tests, 201 of 207 mutants caught - #10772
Merged
Merged
Conversation
The mutation sweep of required_red.t27 caught 24 of 28 mutants. Two of the four survivors were real: a blank line counted as an unreadable row, and the row past the 1024-row cap read instead of counted unreadable. Two tests now pin both boundaries; the other two survivors are equivalent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…vors, 121 of 123 caught (Closes #10768) The tests cover qc_sha_ok at its range bounds, one bad sha of two, a blank line and the 4096-row cap in both answers, the 64-workflow table, the hot share at exactly 50%, an out buffer of exact size, a last row with no newline, qc_split into zero fields, and the t_has_line helper. The production code is unchanged. The 2 survivors left (lines 215 and 308) are equivalent. Six seals that record queue_cost.t27 are resealed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, 54 of 56 caught (Closes #10769) The tests cover a blank line between events, an event created and run at second 0, and two jobs that run in the same second, which must replay in input order. The production code is unchanged. The 2 survivors left (lines 93 and 204) are equivalent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 19, 2026 02:07
Contributor
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
The mutation sweep of
specs/claw/queue_cost.t27caught 95 of 123 mutants. This PR adds 10 tests, which kill 26 of the 28 survivors. The production code is unchanged.t_has_line_finds_a_line_start_and_only_a_line_startsplitting_into_zero_fields_fails_closeda_sha_is_forty_lowercase_hex_digits_at_the_range_boundsnegative_control_one_bad_sha_of_two_makes_the_run_unreadablea_blank_line_is_not_a_row_in_either_answerexactly_half_the_time_is_named_as_the_levera_last_row_without_a_newline_is_still_readan_answer_that_ends_exactly_at_cap_is_not_written_past_itthe_row_cap_is_exact_in_both_answersnegative_control_the_workflow_table_holds_sixty_four_namesThe 2 survivors that remain are equivalent. Both are
ls < nchanged to<=, at lines 215 and 308. The extra pass starts atn, whereqc_line_endreturnsn, so no row is counted.Also in this PR: the required_red sweep (#10763)
It was parked while the queue was high. It also writes
claw_ClawRequiredRed.json, so the two are stacked as one run set instead of two.The mutation sweep of
specs/claw/required_red.t27caught 24 of 28 mutants. This PR adds 2 tests and leaves the production code unchanged.a_blank_line_is_not_a_rowkills line 90,le > lschanged to>=, which counted an empty line as an unreadable row.negative_control_the_row_past_the_cap_is_unreadable_and_the_last_one_in_it_is_readkills line 92,rows < CHECK_MAX_ROWSchanged to<=. Row 1024 is read and row 1025 is unreadable.The 2 survivors that remain are equivalent:
ls < nto<=n, whereqc_line_endreturnsn, so no row is counted.rows > 0to>=req_red_flagalready answers false.Also in this PR: the shape_race sweep (#10769)
The sweep of
specs/claw/shape_race.t27caught 50 of 56 mutants. This PR adds 3 tests and leaves the production code unchanged.a_blank_line_is_not_an_eventle > lsto>=second_zero_is_a_real_secondc >= 0to> 0, and 173,rn[i] >= 0to> 0negative_control_jobs_in_the_same_second_replay_in_input_orderrn[i] < rn[j]to<=The 2 survivors that remain are equivalent. One is line 93,
ls < nto<=. The other is line 204,m > 0to>=: with no rows,shutis 0 and the body defaults to 1, so the end is right either way.Seals
Six seals record
queue_cost.t27, and all six are resealed:claw_ClawQueueCost,claw_ClawCheckLatest,claw_ClawCheckState,claw_ClawMergeLane,claw_ClawRequiredRedandclaw_ClawShapeRace. In the four dependent seals other thanclaw_ClawRequiredRed, only thequeue_cost.t27hash andsealed_atchanged.claw_ClawRequiredRedwas sealed last, over both changed specs.claw_ClawShapeRaceis resealed once more for the 3 shape_race tests. It is the only seal that recordsshape_race.t27.Verification (Railway lab, master 40f619e, after a rebase)
test-report: queue_cost passes 23 of 23 tests and required_red 11 of 11 and shape_race 19 of 19, with 0 vacuous passes.seal --verify: 32 of 32 overspecs/claw/*.t27andspecs/verified/gen_file_check.t27.gen-c: the 7 committedgen/c/claw/*.cfiles are byte-identical.python3 tools/dupe_scan.py: "no new duplicate body".specs/claw/spec: 2 entries, both int27f_frame_cacheand both already listed in seal --verify never checks dependency hashes; 21 claw seals record stale ones #10727. None comes from this PR.Closes #10768.
Closes #10763.
Closes #10769.
🤖 Generated with Claude Code