Repository navigation
test(claw): kill the real suggest_feed.t27 mutation survivors - #10738
Merged
Merged
Conversation
17 tests (36 of 36, was 19) kill 39 real survivors of a 169-mutant sweep; 156 of 171 caught after, the rest equivalent or recorded in the issue. Generated C and seal refreshed by t27c on the Railway lab. Closes #10737 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 19, 2026 00:37
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 PR adds tests to
specs/claw/suggest_feed.t27, the driver that turns a pull request's files and diff headers into one TRI CLAW review document. A mutation sweep (#10737) showed what its tests let through. Only tests change; production code does not.The one left open is
aw > ARENA_CAP->>=. Killing it needs replacement text of exactly 256 KiB; #10737 records this.New tests:
a_length_field_is_one_to_nine_decimal_digitssf_num: an empty field read as 0, 9 digits refused,9refused, any byte taken as a digita_path_is_five_to_two_hundred_bytes_and_ends_in_t27sf_path_ok: an empty path accepted, both length limits off by one,xxt27accepted,zrefuseda_suggested_line_is_printable_ascii_or_tabsf_line_ok:~refused; control bytes and DEL accepteda_control_byte_is_escaped_with_lowercase_hexsf_hexdsurvivors; the\u00XXpath had never runtwo_lines_are_the_same_only_when_every_byte_issf_same_line: one byte too many compared; different lines of the same length called equalthe_line_count_counts_a_last_line_without_a_newlinesf_lines: a byte past the end counted; the last unterminated line dropped or subtracteda_missing_final_newline_alone_gets_no_suggestionone_trailing_blank_line_is_a_one_line_empty_suggestiontotal >= line->>(the old test had two blank lines)two_files_post_two_comments_split_by_one_commaan_empty_diff_header_withholds_its_file_and_not_the_reviewH<TAB>dropping the whole reviewan_unknown_record_shaped_like_a_file_posts_nothinga_stream_may_end_with_the_last_byte_of_a_filea_diff_header_of_127_bytes_is_read_and_128_is_notthe_range_cap_keeps_2048_and_flags_the_nextMAX_RANGESoff by onethe_hunk_cap_keeps_512_and_flags_the_next_wherever_it_closesMAX_HUNKSoff by one in all three places a hunk is addedthe_file_cap_reads_64_files_and_refuses_the_nextMAX_FILESoff by onethe_largest_file_held_is_file_cap_bytesFILE_CAPoff by one, and a copy loop reading one byte past the fileThree test helpers (
t_fix_stream,t_file_head,t_rep) follow thet_convention already used inrefresh.t27andsarif_feed.t27. Like the tests, they appear in the generated C.Verification (Railway lab)
test-report: 36 of 36 (was 19), 0 vacuous passes. t27b: 36 of 36.gen-c:gen/c/claw/suggest_feed.cregenerated (tests and helpers are emitted). The other 6 committedgen/c/claw/*.cfiles are byte-identical.seal specs/claw/suggest_feed.t27 --save, thenseal --verifyoverspecs/claw/*.t27plusspecs/verified/gen_file_check.t27: 32 of 32. The seal's dependency hashes did not change, so chore(claw): reseal 19 seals with stale dependency hashes #10729 left this seal clean.Self-check
i < clen-><=) under equivalent. The full re-sweep showed the newFILE_CAPtest catches it, since at exactly 131072 bytes the copy reads out of bounds. Corrected in test(claw): suggest_feed.t27 mutation sweep, 39 real survivors of 169 #10737 before this PR..t28path did not kill theor->andmutant on the suffix check, because the mutant only changes the firstor. Addedspecs/xxt27, then re-ran that line.Closes #10737.
🤖 Generated with Claude Code