| ... | ... | @@ -1139,13 +1139,26 @@ fn createTestServer(io: Io, S: type) !*TestServer { |
| 1139 | 1139 | } |
| 1140 | 1140 | |
| 1141 | 1141 | const address = try net.IpAddress.parse("127.0.0.1", 0); |
| 1142 | | const test_server = try std.testing.allocator.create(TestServer); |
| 1142 | |
| 1143 | const gpa = std.testing.allocator; |
| 1144 | |
| 1145 | const test_server = try gpa.create(TestServer); |
| 1146 | errdefer gpa.destroy(test_server); |
| 1147 | |
| 1148 | var net_server = try address.listen(io, .{ .reuse_address = true }); |
| 1149 | errdefer net_server.deinit(io); |
| 1150 | |
| 1151 | // populate `test_server` first so `S.run` can use it |
| 1143 | 1152 | test_server.* = .{ |
| 1144 | 1153 | .io = io, |
| 1145 | | .net_server = try address.listen(io, .{ .reuse_address = true }), |
| 1154 | .net_server = net_server, |
| 1146 | 1155 | .shutting_down = false, |
| 1147 | | .server_thread = try std.Thread.spawn(.{}, S.run, .{test_server}), |
| 1156 | .server_thread = undefined, // set below |
| 1148 | 1157 | }; |
| 1158 | |
| 1159 | test_server.server_thread = try .spawn(.{}, S.run, .{test_server}); |
| 1160 | errdefer comptime unreachable; |
| 1161 | |
| 1149 | 1162 | return test_server; |
| 1150 | 1163 | } |
| 1151 | 1164 | |