diff --git a/.trinity/seals/claw_ClawCheckLatest.json b/.trinity/seals/claw_ClawCheckLatest.json index 46017790b5..c271c4ad63 100644 --- a/.trinity/seals/claw_ClawCheckLatest.json +++ b/.trinity/seals/claw_ClawCheckLatest.json @@ -3,7 +3,7 @@ "closure": [ { "spec": "specs/claw/check_state.t27", - "spec_hash": "sha256:0a036f9c3e48e9c91b1cdadc806d63db91d5f7638157d26b355bd4db42014d83" + "spec_hash": "sha256:bd3aa36047755e7b95144ca4bbdb760aa971ceeb94b7e0728dd4db49b842ead6" }, { "spec": "specs/claw/queue_cost.t27", @@ -22,7 +22,7 @@ "module": "ClawCheckLatest", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T00:46:35Z", + "sealed_at": "2026-10-19T00:52:44Z", "sealed_by": "t27c-bootstrap@0.5.2", "spec_hash": "sha256:2de14a373379d1a5acc19fffeb4123c951dc6f36caffb883fb5a8a406be65d58", "spec_path": "specs/claw/check_latest.t27", diff --git a/.trinity/seals/claw_ClawCheckState.json b/.trinity/seals/claw_ClawCheckState.json index 85c9f1de14..4e4d6d73f5 100644 --- a/.trinity/seals/claw_ClawCheckState.json +++ b/.trinity/seals/claw_ClawCheckState.json @@ -14,13 +14,13 @@ "gen_hash_c": "sha256:e4a61dbf1879a0e79f0ded5903ca710761bbeabf8d898d28bee4279e7fbc17ae", "gen_hash_rust": "sha256:92081417741464afd951b1e51ced21199edb1a4365dc03aac395daed47277467", "gen_hash_verilog": "sha256:0de652d676622e312842837dc722d69176107729c64ce2995dee5a0137b1b5cb", - "gen_hash_zig": "sha256:ccf7cb6d2c09d05c9bd75193f00bb8fa1fa1c455fa70999e4750685fbd2ead21", + "gen_hash_zig": "sha256:6c319cc3573a6a24dd68706d68bfc8056fe00e39f000acf03345f245bbea119e", "module": "ClawCheckState", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T00:08:47Z", + "sealed_at": "2026-10-19T00:52:41Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:0a036f9c3e48e9c91b1cdadc806d63db91d5f7638157d26b355bd4db42014d83", + "spec_hash": "sha256:bd3aa36047755e7b95144ca4bbdb760aa971ceeb94b7e0728dd4db49b842ead6", "spec_path": "specs/claw/check_state.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/claw_ClawMergeLane.json b/.trinity/seals/claw_ClawMergeLane.json index 898897264c..6f9f00dc27 100644 --- a/.trinity/seals/claw_ClawMergeLane.json +++ b/.trinity/seals/claw_ClawMergeLane.json @@ -1,6 +1,10 @@ { "built_by": "t27c-bootstrap@0.5.2+9448ab4be", "closure": [ + { + "spec": "specs/claw/check_state.t27", + "spec_hash": "sha256:bd3aa36047755e7b95144ca4bbdb760aa971ceeb94b7e0728dd4db49b842ead6" + }, { "spec": "specs/claw/queue_cost.t27", "spec_hash": "sha256:16789d92d878e85e3d02e56a9be4bffe0b565b5c14c270f79ddaedc6d6911f7e" @@ -11,16 +15,16 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:9e64d9f311afe66e2933493b7a4fb09e64d24acf2527f13ce429738a01f32b27", - "gen_hash_rust": "sha256:0649a78a43e68e68d61fcbcba21c738e0a5767f5b60dee1c2214eed7f3165927", - "gen_hash_verilog": "sha256:58fca36ac6be6e63f55a9cc268a1695a9a046d858ac100fc84bd00fce5752909", - "gen_hash_zig": "sha256:ca374fe84de07ca60506572b960144fbcfc46ffc3da72942e15d4743efa82d37", + "gen_hash_c": "sha256:97fa2e0b5b743f1df34e031c0aa35b675dbbbb5cde5aeab14c0588a19952fa9b", + "gen_hash_rust": "sha256:3f7db0ae590c631e6e8f4e41c8c113f052e3b98c2b97fc293e850fc2df6c56f9", + "gen_hash_verilog": "sha256:58f802efb81cd498721d002ecbffc3608d216e20f9f818fe922d3e8f41be198e", + "gen_hash_zig": "sha256:5744962151c567c0cf7d0c3b0f0e0e228118f708d11a6fbce277c00fa14b72f5", "module": "ClawMergeLane", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T00:08:51Z", + "sealed_at": "2026-10-19T00:52:43Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:43b070ab365c203b897b555f2ad2743f4b56049cf8186057743df02b990e0b5a", + "spec_hash": "sha256:3ebb5dbd29a60d877506ea11512d091d043a223e441d1668d4be9cfbf027602c", "spec_path": "specs/claw/merge_lane.t27", "tests": { "failed": 0, diff --git a/.trinity/seals/claw_ClawRequiredRed.json b/.trinity/seals/claw_ClawRequiredRed.json index f2ba99afa1..7c7be57c53 100644 --- a/.trinity/seals/claw_ClawRequiredRed.json +++ b/.trinity/seals/claw_ClawRequiredRed.json @@ -7,7 +7,7 @@ }, { "spec": "specs/claw/check_state.t27", - "spec_hash": "sha256:0a036f9c3e48e9c91b1cdadc806d63db91d5f7638157d26b355bd4db42014d83" + "spec_hash": "sha256:bd3aa36047755e7b95144ca4bbdb760aa971ceeb94b7e0728dd4db49b842ead6" }, { "spec": "specs/claw/queue_cost.t27", @@ -26,7 +26,7 @@ "module": "ClawRequiredRed", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T00:47:30Z", + "sealed_at": "2026-10-19T00:52:44Z", "sealed_by": "t27c-bootstrap@0.5.2", "spec_hash": "sha256:ad8660400d420444a1a3c8858866b4cf7447f60027e27e1bb333a9463e1decea", "spec_path": "specs/claw/required_red.t27", diff --git a/specs/claw/check_state.t27 b/specs/claw/check_state.t27 index a6c3971f5e..0705bc83fb 100644 --- a/specs/claw/check_state.t27 +++ b/specs/claw/check_state.t27 @@ -180,7 +180,7 @@ pub fn check_plan(raw : []const u8, n : usize, out : []u8, cap : usize) -> usize // ---- test helpers ---- -fn t_rows(dst : []u8, cap : usize, w : usize, row : str, row_len : usize, count : u32) -> usize { +pub fn t_rows(dst : []u8, cap : usize, w : usize, row : str, row_len : usize, count : u32) -> usize { var x : usize = w; var i : u32 = 0; while (i < count) { diff --git a/specs/claw/merge_lane.t27 b/specs/claw/merge_lane.t27 index 7fdb4fab90..51f12aab35 100644 --- a/specs/claw/merge_lane.t27 +++ b/specs/claw/merge_lane.t27 @@ -58,6 +58,7 @@ module ClawMergeLane; use claw::text; use claw::queue_cost; +use claw::check_state; pub const ML_QUEUED : usize = 0; pub const ML_RUNNING : usize = 1; @@ -673,17 +674,8 @@ test the_share_total_counts_unreadable_rows { assert buf_has(&out, w, "F\tmerger-share\thigh\n", 20) == true; } -// The tests below were written against a mutation sweep of this file (#10724). - -fn t_rep(dst : []u8, cap : usize, w : usize, row : str, row_len : usize, count : u32) -> usize { - var x : usize = w; - var i : u32 = 0; - while (i < count) { - x = put_str(dst, cap, x, row, row_len); - i += 1; - } - return x; -} +// The tests below were written against a mutation sweep of this file (#10724). They fill rows +// with check_state's t_rows, the one copy of that helper (duplicate-bodies, #10742). test a_blank_line_is_not_a_row_in_any_reader { var st : [8]u32 = undefined; @@ -709,12 +701,12 @@ test an_open_run_of_age_zero_is_read { test the_merger_rows_cap_at_4096_and_refuse_the_next { var raw : [45067]u8 = undefined; var st : [8]u32 = undefined; - const n : usize = t_rep(&raw, 45067, 0, "queued\t-\t5\n", 11, 4096); + const n : usize = t_rows(&raw, 45067, 0, "queued\t-\t5\n", 11, 4096); assert n == 45056; assert ml_counts(&raw, n, &st) == 4096; assert st[ML_QUEUED] == 4096; assert st[ML_BAD] == 0; - const m : usize = t_rep(&raw, 45067, n, "queued\t-\t5\n", 11, 1); + const m : usize = t_rows(&raw, 45067, n, "queued\t-\t5\n", 11, 1); assert m == 45067; assert ml_counts(&raw, m, &st) == 4097; assert st[ML_QUEUED] == 4096; @@ -724,12 +716,12 @@ test the_merger_rows_cap_at_4096_and_refuse_the_next { test the_yield_rows_cap_at_4096_and_refuse_the_next { var raw : [61455]u8 = undefined; var st : [5]u32 = undefined; - const n : usize = t_rep(&raw, 61455, 0, "schedule\t1\t0\t0\n", 15, 4096); + const n : usize = t_rows(&raw, 61455, 0, "schedule\t1\t0\t0\n", 15, 4096); assert n == 61440; assert my_counts(&raw, n, &st) == 4096; assert st[MY_RUNS] == 4096; assert st[MY_BAD] == 0; - const m : usize = t_rep(&raw, 61455, n, "schedule\t1\t0\t0\n", 15, 1); + const m : usize = t_rows(&raw, 61455, n, "schedule\t1\t0\t0\n", 15, 1); assert m == 61455; assert my_counts(&raw, m, &st) == 4097; assert st[MY_RUNS] == 4096; @@ -739,12 +731,12 @@ test the_yield_rows_cap_at_4096_and_refuse_the_next { test the_share_rows_cap_at_4096_and_refuse_the_next { var raw : [28679]u8 = undefined; var st : [4]u32 = undefined; - const n : usize = t_rep(&raw, 28679, 0, "x\tpush\n", 7, 4096); + const n : usize = t_rows(&raw, 28679, 0, "x\tpush\n", 7, 4096); assert n == 28672; assert ms_counts(&raw, n, &st) == 4096; assert st[MS_ROWS] == 4096; assert st[MS_BAD] == 0; - const m : usize = t_rep(&raw, 28679, n, "x\tpush\n", 7, 1); + const m : usize = t_rows(&raw, 28679, n, "x\tpush\n", 7, 1); assert m == 28679; assert ms_counts(&raw, m, &st) == 4097; assert st[MS_ROWS] == 4096;