ReviewOS

also looking at this

zig-utils/zig-test-framework

Add reproducible randomized test order

#29
Merged glennmichael123 wants to merge codex/issue-14-random-order into main
18 files +487 -42
src/ui_server.zigmodified+7-2
Changes to src/ui_server.zig
@@ -321,7 +321,10 @@ pub const UIReporter = struct {
321321
322322 fn onRunStart(reporter: *reporter_mod.Reporter, total: usize) !void {
323323 const self: *Self = @fieldParentPtr("reporter", reporter);
324 try self.server.broadcastEvent(reporter.allocator, .{ .run_start = .{ .total = total } });
324 try self.server.broadcastEvent(reporter.allocator, .{ .run_start = .{
325 .total = total,
326 .random_seed = reporter.random_seed,
327 } });
325328 }
326329
327330 fn onRunEnd(reporter: *reporter_mod.Reporter, results: *reporter_mod.TestResults) !void {
@@ -334,6 +337,7 @@ pub const UIReporter = struct {
334337 .failed = results.failed,
335338 .skipped = results.skipped,
336339 .duration_ns = results.total_time_ns,
340 .random_seed = results.random_seed,
337341 } });
338342 }
339343
@@ -407,6 +411,7 @@ pub const MultiReporter = struct {
407411 fn onRunStart(reporter: *reporter_mod.Reporter, total: usize) !void {
408412 const self: *Self = @fieldParentPtr("reporter", reporter);
409413 for (self.reporters) |rep| {
414 rep.random_seed = reporter.random_seed;
410415 try rep.onRunStart(total);
411416 }
412417 }
@@ -536,7 +541,7 @@ test "UI server streams broadcast events over SSE" {
536541
537542 try server.broadcastEvent(std.testing.allocator, .{ .run_start = .{ .total = 2 } });
538543 try expectLine(&stream_reader.interface, "event: run_start");
539 try expectLine(&stream_reader.interface, "data: {\"protocol_version\":1,\"type\":\"run_start\",\"data\":{\"total\":2}}");
544 try expectLine(&stream_reader.interface, "data: {\"protocol_version\":1,\"type\":\"run_start\",\"data\":{\"total\":2,\"random_seed\":null}}");
540545 try expectLine(&stream_reader.interface, "");
541546}
542547