a73x

f8e1938d

refactor: the QUIC arm's suite is chained with the socket tests, not the cheap ones

a73x   2026-08-30 12:08

Commit message
refactor: the QUIC arm's suite is chained with the socket tests, not the cheap ones

build.zig
Old New
@@ -812,12 +812,10 @@ fn docGate(b: *std.Build, target: std.Build.ResolvedTarget, check_step: *std.Bui
812 /// tests are seconds-long and socket-free, while a regression in either 812 /// tests are seconds-long and socket-free, while a regression in either
813 /// can wedge a daemon test that waits on a client forever — and a wedged 813 /// can wedge a daemon test that waits on a client forever — and a wedged
814 /// step prints nothing at all. Failing first is what makes the catch 814 /// step prints nothing at all. Failing first is what makes the catch
815 /// legible; the daemon's own child files obey the same rule inside its 815 /// legible. script leads for the same reason: instant, allocation-only,
816 /// binary, where their imports lead the root's test block. script leads 816 /// and both fixtures inherit its escape pins. The mains are roots of
817 /// for the same reason: instant, allocation-only, and both fixtures 817 /// nothing but the one binary, and they carry the argument parsers — a
818 /// inherit its escape pins. The mains are roots of nothing but the one 818 /// test that is never built is not a test (decisions.md).
819 /// binary, and they carry the argument parsers — a test that is never
820 /// built is not a test (decisions.md).
821 const test_order = [_][]const u8{ 819 const test_order = [_][]const u8{
822 "script", "protocol", "client_core", "engine", "pty", 820 "script", "protocol", "client_core", "engine", "pty",
823 "delta", "hosts", "askpass", "replica", "keymap", 821 "delta", "hosts", "askpass", "replica", "keymap",
src/server/server.zig
Old New
@@ -3602,16 +3602,15 @@ pub const Server = struct {
3602 test { 3602 test {
3603 std.testing.refAllDeclsRecursive(@This()); 3603 std.testing.refAllDeclsRecursive(@This());
3604 3604
3605 // The child files' own suites first: seconds-long and socket-free, while
3606 // a regression in one can wedge a daemon test that waits on a client
3607 // forever — and a wedged step prints nothing at all, so failing before
3608 // the sockets open is what makes the catch legible.
3609 _ = @import("cmd.zig"); 3605 _ = @import("cmd.zig");
3610 _ = @import("shellint.zig"); 3606 _ = @import("shellint.zig");
3611 _ = @import("upgrade.zig"); 3607 _ = @import("upgrade.zig");
3612 _ = @import("quic_server.zig");
3613 3608
3614 // Reaching a file is what registers its tests; build.zig gates the list. 3609 // Reaching a file is what registers its tests; build.zig gates the list.
3610 // quic_server.zig is chained with these rather than with the three
3611 // child files above: its suite binds real UDP sockets, so a wedge in it
3612 // costs the same silence a daemon test's does. The table ran it after
3613 // the daemon for that reason while it was still a row.
3615 _ = @import("server_test_agent.zig"); 3614 _ = @import("server_test_agent.zig");
3616 _ = @import("server_test_attach.zig"); 3615 _ = @import("server_test_attach.zig");
3617 _ = @import("server_test_await.zig"); 3616 _ = @import("server_test_await.zig");
@@ -3622,4 +3621,5 @@ test {
3622 _ = @import("server_test_quic.zig"); 3621 _ = @import("server_test_quic.zig");
3623 _ = @import("server_test_session.zig"); 3622 _ = @import("server_test_session.zig");
3624 _ = @import("server_test_upgrade.zig"); 3623 _ = @import("server_test_upgrade.zig");
3624 _ = @import("quic_server.zig");
3625 } 3625 }