authorgravatar for vincent@rischmann.frVincent Rischmann <vincent@rischmann.fr> 2021-12-31 20:57:49+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-01-12 11:52:11-07:00
logeee395287f701b32e222c396ba4ae2615b23c4bb
tree313b0910d6564474635f80b3f7eed970b35eeb28
parent419499b2528c04457c04f38fcedb48c6d5881323

io_uring: fix version check in tests

For renameat, unlinkat, mkdirat, symlinkat and linkat the error code differs between kernel 5.4 which returns EBADF and kernel 5.10 which returns EINVAL. Fixes #10466

1 files changed, 5 insertions(+), 5 deletions(-)

lib/std/os/linux/io_uring.zig+5-5
...@@ -2471,7 +2471,7 @@ test "renameat" {...@@ -2471,7 +2471,7 @@ test "renameat" {
2471 switch (cqe.err()) {2471 switch (cqe.err()) {
2472 .SUCCESS => {},2472 .SUCCESS => {},
2473 // This kernel's io_uring does not yet implement renameat (kernel version < 5.11)2473 // This kernel's io_uring does not yet implement renameat (kernel version < 5.11)
2474 .INVAL => return error.SkipZigTest,2474 .BADF, .INVAL => return error.SkipZigTest,
2475 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),2475 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),
2476 }2476 }
2477 try testing.expectEqual(linux.io_uring_cqe{2477 try testing.expectEqual(linux.io_uring_cqe{
...@@ -2533,7 +2533,7 @@ test "unlinkat" {...@@ -2533,7 +2533,7 @@ test "unlinkat" {
2533 switch (cqe.err()) {2533 switch (cqe.err()) {
2534 .SUCCESS => {},2534 .SUCCESS => {},
2535 // This kernel's io_uring does not yet implement unlinkat (kernel version < 5.11)2535 // This kernel's io_uring does not yet implement unlinkat (kernel version < 5.11)
2536 .INVAL => return error.SkipZigTest,2536 .BADF, .INVAL => return error.SkipZigTest,
2537 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),2537 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),
2538 }2538 }
2539 try testing.expectEqual(linux.io_uring_cqe{2539 try testing.expectEqual(linux.io_uring_cqe{
...@@ -2579,7 +2579,7 @@ test "mkdirat" {...@@ -2579,7 +2579,7 @@ test "mkdirat" {
2579 switch (cqe.err()) {2579 switch (cqe.err()) {
2580 .SUCCESS => {},2580 .SUCCESS => {},
2581 // This kernel's io_uring does not yet implement mkdirat (kernel version < 5.15)2581 // This kernel's io_uring does not yet implement mkdirat (kernel version < 5.15)
2582 .INVAL => return error.SkipZigTest,2582 .BADF, .INVAL => return error.SkipZigTest,
2583 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),2583 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),
2584 }2584 }
2585 try testing.expectEqual(linux.io_uring_cqe{2585 try testing.expectEqual(linux.io_uring_cqe{
...@@ -2628,7 +2628,7 @@ test "symlinkat" {...@@ -2628,7 +2628,7 @@ test "symlinkat" {
2628 switch (cqe.err()) {2628 switch (cqe.err()) {
2629 .SUCCESS => {},2629 .SUCCESS => {},
2630 // This kernel's io_uring does not yet implement symlinkat (kernel version < 5.15)2630 // This kernel's io_uring does not yet implement symlinkat (kernel version < 5.15)
2631 .INVAL => return error.SkipZigTest,2631 .BADF, .INVAL => return error.SkipZigTest,
2632 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),2632 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),
2633 }2633 }
2634 try testing.expectEqual(linux.io_uring_cqe{2634 try testing.expectEqual(linux.io_uring_cqe{
...@@ -2683,7 +2683,7 @@ test "linkat" {...@@ -2683,7 +2683,7 @@ test "linkat" {
2683 switch (cqe.err()) {2683 switch (cqe.err()) {
2684 .SUCCESS => {},2684 .SUCCESS => {},
2685 // This kernel's io_uring does not yet implement linkat (kernel version < 5.15)2685 // This kernel's io_uring does not yet implement linkat (kernel version < 5.15)
2686 .INVAL => return error.SkipZigTest,2686 .BADF, .INVAL => return error.SkipZigTest,
2687 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),2687 else => |errno| std.debug.panic("unhandled errno: {}", .{errno}),
2688 }2688 }
2689 try testing.expectEqual(linux.io_uring_cqe{2689 try testing.expectEqual(linux.io_uring_cqe{