milestone 18: collapse duplicated infrastructure into shared listener core, crud list helper, resource shells, transport race, name and line helpers, ui modules
This commit is contained in:
@@ -184,11 +184,11 @@ test "two length-prefixed queries share one connection" {
|
||||
|
||||
try bounded(io, twoQueriesOnOneConnection, .{ io, server_address });
|
||||
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.accepted.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.stats.rejected_at_capacity.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), server.core.stats.connections.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.core.stats.rejected_at_capacity.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 2), h.stats.queries.load(.monotonic));
|
||||
|
||||
server.deinit(gpa, io);
|
||||
server.deinit(io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
@@ -218,12 +218,12 @@ test "the claimed slot records the connecting client" {
|
||||
// was written after `claim` filled the slot in, so this read races nothing.
|
||||
// Without a real peer the handler would rate-limit, group and log every TCP
|
||||
// client under whatever the uninitialized slot happened to hold.
|
||||
const peer = server.conns[0].peer;
|
||||
const peer = server.core.conns[0].peer;
|
||||
try testing.expectEqual(net.IpAddress.ip4, std.meta.activeTag(peer));
|
||||
try testing.expectEqualSlices(u8, &[_]u8{ 127, 0, 0, 1 }, &peer.ip4.bytes);
|
||||
try testing.expect(peer.ip4.port != 0);
|
||||
|
||||
server.deinit(gpa, io);
|
||||
server.deinit(io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
@@ -317,7 +317,7 @@ test "a canceled serve does not wait for a live connection" {
|
||||
try testing.expectEqual(@as(?usize, 0), firstFreeSlot(&server));
|
||||
|
||||
client_group.cancel(io);
|
||||
server.deinit(gpa, io);
|
||||
server.deinit(io);
|
||||
|
||||
// Checked last: the connection had to be answered for the test to mean
|
||||
// anything, and the server is torn down before a failure is reported.
|
||||
@@ -327,7 +327,7 @@ test "a canceled serve does not wait for a live connection" {
|
||||
/// The first slot the server would hand out, read after `serve` has returned so
|
||||
/// nothing can be writing it.
|
||||
fn firstFreeSlot(server: *const tcp_server.TcpServer) ?usize {
|
||||
for (server.conns, 0..) |*conn, index| {
|
||||
for (server.core.conns, 0..) |*conn, index| {
|
||||
if (conn.state == .free) return index;
|
||||
}
|
||||
return null;
|
||||
@@ -356,11 +356,11 @@ test "an idle connection is closed and counted" {
|
||||
|
||||
try bounded(io, waitForServerClose, .{ io, server_address });
|
||||
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.accepted.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.idle_timeouts.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.stats.connection_errors.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), server.core.stats.connections.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), server.core.stats.idle_timeouts.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.core.stats.connection_errors.load(.monotonic));
|
||||
|
||||
server.deinit(gpa, io);
|
||||
server.deinit(io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
@@ -389,10 +389,10 @@ test "a zero-length message is a connection error" {
|
||||
|
||||
try bounded(io, sendZeroLength, .{ io, server_address });
|
||||
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.connection_errors.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.stats.idle_timeouts.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), server.core.stats.connection_errors.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.core.stats.idle_timeouts.load(.monotonic));
|
||||
|
||||
server.deinit(gpa, io);
|
||||
server.deinit(io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
@@ -436,7 +436,7 @@ test "deinit ends a serve loop that is blocked on accept" {
|
||||
try group.concurrent(io, tcp_server.TcpServer.serve, .{ &server, io });
|
||||
|
||||
// No client ever connects, so `serve` is inside an accept when this runs.
|
||||
server.deinit(gpa, io);
|
||||
server.deinit(io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user