diff --git a/lib/std/os/linux/io_uring.zig b/lib/std/os/linux/io_uring.zig index d263904643..fcf09b80b6 100644 --- a/lib/std/os/linux/io_uring.zig +++ b/lib/std/os/linux/io_uring.zig @@ -1978,11 +1978,6 @@ test "close" { test "accept/connect/send/recv" { if (builtin.os.tag != .linux) return error.SkipZigTest; - if (true) { - // https://github.com/ziglang/zig/issues/14907 - return error.SkipZigTest; - } - var ring = IO_Uring.init(16, 0) catch |err| switch (err) { error.SystemOutdated => return error.SkipZigTest, error.PermissionDenied => return error.SkipZigTest, @@ -2024,11 +2019,6 @@ test "accept/connect/send/recv" { test "sendmsg/recvmsg" { if (builtin.os.tag != .linux) return error.SkipZigTest; - if (true) { - // https://github.com/ziglang/zig/issues/14907 - return error.SkipZigTest; - } - var ring = IO_Uring.init(2, 0) catch |err| switch (err) { error.SystemOutdated => return error.SkipZigTest, error.PermissionDenied => return error.SkipZigTest, @@ -2036,8 +2026,7 @@ test "sendmsg/recvmsg" { }; defer ring.deinit(); - if (true) @compileError("don't hard code port numbers in unit tests"); // https://github.com/ziglang/zig/issues/14907 - const address_server = try net.Address.parseIp4("127.0.0.1", 3131); + var address_server = try net.Address.parseIp4("127.0.0.1", 0); const server = try os.socket(address_server.any.family, os.SOCK.DGRAM, 0); defer os.close(server); @@ -2045,6 +2034,10 @@ test "sendmsg/recvmsg" { try os.setsockopt(server, os.SOL.SOCKET, os.SO.REUSEADDR, &mem.toBytes(@as(c_int, 1))); try os.bind(server, &address_server.any, address_server.getOsSockLen()); + // set address_server to the OS-chosen IP/port. + var slen: os.socklen_t = address_server.getOsSockLen(); + try os.getsockname(server, &address_server.any, &slen); + const client = try os.socket(address_server.any.family, os.SOCK.DGRAM, 0); defer os.close(client); @@ -2236,11 +2229,6 @@ test "timeout_remove" { test "accept/connect/recv/link_timeout" { if (builtin.os.tag != .linux) return error.SkipZigTest; - if (true) { - // https://github.com/ziglang/zig/issues/14907 - return error.SkipZigTest; - } - var ring = IO_Uring.init(16, 0) catch |err| switch (err) { error.SystemOutdated => return error.SkipZigTest, error.PermissionDenied => return error.SkipZigTest, @@ -2391,11 +2379,6 @@ test "statx" { test "accept/connect/recv/cancel" { if (builtin.os.tag != .linux) return error.SkipZigTest; - if (true) { - // https://github.com/ziglang/zig/issues/14907 - return error.SkipZigTest; - } - var ring = IO_Uring.init(16, 0) catch |err| switch (err) { error.SystemOutdated => return error.SkipZigTest, error.PermissionDenied => return error.SkipZigTest, @@ -2533,11 +2516,6 @@ test "register_files_update" { test "shutdown" { if (builtin.os.tag != .linux) return error.SkipZigTest; - if (true) { - // https://github.com/ziglang/zig/issues/14907 - return error.SkipZigTest; - } - var ring = IO_Uring.init(16, 0) catch |err| switch (err) { error.SystemOutdated => return error.SkipZigTest, error.PermissionDenied => return error.SkipZigTest, @@ -2545,8 +2523,7 @@ test "shutdown" { }; defer ring.deinit(); - if (true) @compileError("don't hard code port numbers in unit tests"); // https://github.com/ziglang/zig/issues/14907 - const address = try net.Address.parseIp4("127.0.0.1", 3131); + var address = try net.Address.parseIp4("127.0.0.1", 0); // Socket bound, expect shutdown to work { @@ -2556,6 +2533,10 @@ test "shutdown" { try os.bind(server, &address.any, address.getOsSockLen()); try os.listen(server, 1); + // set address to the OS-chosen IP/port. + var slen: os.socklen_t = address.getOsSockLen(); + try os.getsockname(server, &address.any, &slen); + var shutdown_sqe = try ring.shutdown(0x445445445, server, os.linux.SHUT.RD); try testing.expectEqual(linux.IORING_OP.SHUTDOWN, shutdown_sqe.opcode); try testing.expectEqual(@as(i32, server), shutdown_sqe.fd); @@ -3091,11 +3072,6 @@ test "remove_buffers" { test "provide_buffers: accept/connect/send/recv" { if (builtin.os.tag != .linux) return error.SkipZigTest; - if (true) { - // https://github.com/ziglang/zig/issues/14907 - return error.SkipZigTest; - } - var ring = IO_Uring.init(16, 0) catch |err| switch (err) { error.SystemOutdated => return error.SkipZigTest, error.PermissionDenied => return error.SkipZigTest, @@ -3272,8 +3248,7 @@ const SocketTestHarness = struct { fn createSocketTestHarness(ring: *IO_Uring) !SocketTestHarness { // Create a TCP server socket - if (true) @compileError("don't hard code port numbers in unit tests"); // https://github.com/ziglang/zig/issues/14907 - const address = try net.Address.parseIp4("127.0.0.1", 3131); + var address = try net.Address.parseIp4("127.0.0.1", 0); const kernel_backlog = 1; const listener_socket = try os.socket(address.any.family, os.SOCK.STREAM | os.SOCK.CLOEXEC, 0); errdefer os.closeSocket(listener_socket); @@ -3282,6 +3257,10 @@ fn createSocketTestHarness(ring: *IO_Uring) !SocketTestHarness { try os.bind(listener_socket, &address.any, address.getOsSockLen()); try os.listen(listener_socket, kernel_backlog); + // set address to the OS-chosen IP/port. + var slen: os.socklen_t = address.getOsSockLen(); + try os.getsockname(listener_socket, &address.any, &slen); + // Submit 1 accept var accept_addr: os.sockaddr = undefined; var accept_addr_len: os.socklen_t = @sizeOf(@TypeOf(accept_addr));