Repository navigation
test(claw): pin token_shape's line reader, 16 of 23 sweep survivors killed - #10677
Merged
Merged
Conversation
…illed Six tests cover a note at the end of its line, blank and two-space lines inside a job, a commented-out job header, list items at the job indent, key-shaped lines inside run blocks, the job header shapes and the put_span clip. The other 7 survivors are equivalent (listed in the PR). Closes #10676 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 21:48
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
This adds 6 tests to
specs/claw/token_shape.t27, covering the line reader that the token-shape law (#10501) stands on. The mutation sweep of #10673 left 23 surviving mutants on its code lines.a_note_at_the_end_of_its_line_countsi + nlen <= eto<(a block-form- if: ... == 'failure'step)blank_and_two_space_lines_do_not_end_a_jobe > sto>=in the top-level check (an empty line would endjobs:); is_job_header's empty-namereturn falsea_commented_out_job_header_is_not_a_jobortoand, andreturn falsetoreturn true, on the#/-checkonly_a_step_or_its_own_key_can_mintind > 2to>=(a list item at the job's own indent);andtooron the in-step key check (auses:line insiderun: |)only_a_bare_name_and_a_colon_is_a_job_header!=to==,andtoor, trailing spaces and CR allowed);i + 1toi + 2; the name length>to>=; bothreturn false; the name scan running one byte past the line enda_clipped_span_writes_nothing_at_capx < captox <= capVerification (Railway lab)
t27c test-report specs/claw/token_shape.t27: 16 tests, 16 pass, 0 vacuous passes.t27b test: 16 tests pass.line_endi < nto<=: it readstext[n]and returnsneither way.indent_ofi < eto<=:text[e]is a newline or past the input, and it returnse - seither way.i >= eto>: ati == ethe next byte is the newline, and the scan returns false either way.s < nto<=: ats == n,e > sis already false.s >= nto>: ats == nnothing matches, and the loop ends with the samew.mthe scratch buffer holds no newline the report wrote. Reaching it needs a report over 4 KiB.seal --savefor token_shape, thenseal --verifyon all 31 claw specs: 31 match, 0 differ.Lesson: the first re-run marked 7 survivors as BLOCKED because the classifier matched the word "error". The test names contain
continue_on_error. The classifier now reads theFAILline of the report.Closes #10676
🤖 Generated with Claude Code