tests: a failed server check fails the test instead of hanging it, and the tls idle tests leave the handshake room
This commit is contained in:
@@ -121,6 +121,14 @@ test "a udp query is answered on the loopback" {
|
||||
|
||||
var group: std.Io.Group = .init;
|
||||
try group.concurrent(io, udp_server.UdpServer.serve, .{ &server, io });
|
||||
// Deferred so a failed check still stops the server: a `serve` left in
|
||||
// accept makes `threaded.deinit` wait for it forever.
|
||||
defer {
|
||||
server.deinit(gpa, io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
const client_address: net.IpAddress = try .parse("127.0.0.1", 0);
|
||||
var client = try client_address.bind(io, .{ .mode = .dgram });
|
||||
@@ -135,11 +143,6 @@ test "a udp query is answered on the loopback" {
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.received.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), server.stats.send_errors.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), h.stats.queries.load(.monotonic));
|
||||
|
||||
server.deinit(gpa, io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
test "a runt datagram is dropped and no reply is sent" {
|
||||
@@ -160,6 +163,12 @@ test "a runt datagram is dropped and no reply is sent" {
|
||||
|
||||
var group: std.Io.Group = .init;
|
||||
try group.concurrent(io, udp_server.UdpServer.serve, .{ &server, io });
|
||||
defer {
|
||||
server.deinit(gpa, io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
const client_address: net.IpAddress = try .parse("127.0.0.1", 0);
|
||||
var client = try client_address.bind(io, .{ .mode = .dgram });
|
||||
@@ -171,11 +180,6 @@ test "a runt datagram is dropped and no reply is sent" {
|
||||
try testing.expectError(error.Timeout, client.receiveTimeout(io, &buf, silence));
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.received.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 1), h.stats.dropped_malformed.load(.monotonic));
|
||||
|
||||
server.deinit(gpa, io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
test "an oversize datagram arrives truncated and is dropped" {
|
||||
@@ -196,6 +200,12 @@ test "an oversize datagram arrives truncated and is dropped" {
|
||||
|
||||
var group: std.Io.Group = .init;
|
||||
try group.concurrent(io, udp_server.UdpServer.serve, .{ &server, io });
|
||||
defer {
|
||||
server.deinit(gpa, io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
const client_address: net.IpAddress = try .parse("127.0.0.1", 0);
|
||||
var client = try client_address.bind(io, .{ .mode = .dgram });
|
||||
@@ -213,11 +223,6 @@ test "an oversize datagram arrives truncated and is dropped" {
|
||||
try testing.expectError(error.Timeout, client.receiveTimeout(io, &buf, silence));
|
||||
try testing.expectEqual(@as(u64, 1), server.stats.dropped_oversize.load(.monotonic));
|
||||
try testing.expectEqual(@as(u64, 0), h.stats.queries.load(.monotonic));
|
||||
|
||||
server.deinit(gpa, io);
|
||||
group.await(io) catch |err| switch (err) {
|
||||
error.Canceled => unreachable,
|
||||
};
|
||||
}
|
||||
|
||||
test "deinit ends a serve loop that is blocked on receive" {
|
||||
|
||||
Reference in New Issue
Block a user