authorgravatar for igor.anic@gmail.comIgor Anić <igor.anic@gmail.com> 2023-11-17 17:21:54+01:00
committergravatar for igor.anic@gmail.comIgor Anić <igor.anic@gmail.com> 2023-11-17 17:21:54+01:00
log257b8131ec3133d3d30cf26d0836545aa95da2d3
treeb4226ea12c9c613455ba9c60a6512e4cc0c7d387
parent87dd8d56690b4e8187d9a2a9fda9c611199f430f

io_uring: use kernel version test in send_zc test


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

lib/std/os/linux/io_uring.zig+9-9
......@@ -616,6 +616,7 @@ pub const IO_Uring = struct {
616616
617617 /// Queues (but does not submit) an SQE to perform a `recv(2)`.
618618 /// Returns a pointer to the SQE.
619 /// Available since 5.6
619620 pub fn recv(
620621 self: *IO_Uring,
621622 user_data: u64,
......@@ -639,6 +640,7 @@ pub const IO_Uring = struct {
639640
640641 /// Queues (but does not submit) an SQE to perform a `send(2)`.
641642 /// Returns a pointer to the SQE.
643 /// Available since 5.6
642644 pub fn send(
643645 self: *IO_Uring,
644646 user_data: u64,
......@@ -654,6 +656,7 @@ pub const IO_Uring = struct {
654656
655657 /// Queues (but does not submit) an SQE to perform an async zerocopy `send(2)`.
656658 /// Returns a pointer to the SQE.
659 /// Available since 6.0
657660 pub fn send_zc(
658661 self: *IO_Uring,
659662 user_data: u64,
......@@ -670,6 +673,7 @@ pub const IO_Uring = struct {
670673
671674 /// Queues (but does not submit) an SQE to perform an async zerocopy `send(2)`.
672675 /// Returns a pointer to the SQE.
676 /// Available since 6.0
673677 pub fn send_zc_fixed(
674678 self: *IO_Uring,
675679 user_data: u64,
......@@ -687,6 +691,7 @@ pub const IO_Uring = struct {
687691
688692 /// Queues (but does not submit) an SQE to perform a `recvmsg(2)`.
689693 /// Returns a pointer to the SQE.
694 /// Available since 5.3
690695 pub fn recvmsg(
691696 self: *IO_Uring,
692697 user_data: u64,
......@@ -702,6 +707,7 @@ pub const IO_Uring = struct {
702707
703708 /// Queues (but does not submit) an SQE to perform a `sendmsg(2)`.
704709 /// Returns a pointer to the SQE.
710 /// Available since 5.3
705711 pub fn sendmsg(
706712 self: *IO_Uring,
707713 user_data: u64,
......@@ -717,6 +723,7 @@ pub const IO_Uring = struct {
717723
718724 /// Queues (but does not submit) an SQE to perform an async zerocopy `sendmsg(2)`.
719725 /// Returns a pointer to the SQE.
726 /// Available since 6.1
720727 pub fn sendmsg_zc(
721728 self: *IO_Uring,
722729 user_data: u64,
......@@ -3783,13 +3790,9 @@ test "accept multishot" {
37833790}
37843791
37853792test "accept/connect/send_zc/recv" {
3786 if (builtin.os.tag != .linux) return error.SkipZigTest;
3793 try skipKernelLessThan(.{ .major = 6, .minor = 0, .patch = 0 });
37873794
3788 var ring = IO_Uring.init(16, 0) catch |err| switch (err) {
3789 error.SystemOutdated => return error.SkipZigTest,
3790 error.PermissionDenied => return error.SkipZigTest,
3791 else => return err,
3792 };
3795 var ring = try IO_Uring.init(16, 0);
37933796 defer ring.deinit();
37943797
37953798 const socket_test_harness = try createSocketTestHarness(&ring);
......@@ -3811,7 +3814,6 @@ test "accept/connect/send_zc/recv" {
38113814 // request, with the user_data field set to the same value.
38123815 // buffer_send must be keep alive until second cqe.
38133816 var cqe_send = try ring.copy_cqe();
3814 if (cqe_send.err() == .INVAL) return error.SkipZigTest;
38153817 try testing.expectEqual(linux.io_uring_cqe{
38163818 .user_data = 0xeeeeeeee,
38173819 .res = buffer_send.len,
......@@ -3819,7 +3821,6 @@ test "accept/connect/send_zc/recv" {
38193821 }, cqe_send);
38203822
38213823 const cqe_recv = try ring.copy_cqe();
3822 if (cqe_recv.err() == .INVAL) return error.SkipZigTest;
38233824 try testing.expectEqual(linux.io_uring_cqe{
38243825 .user_data = 0xffffffff,
38253826 .res = buffer_recv.len,
......@@ -3831,7 +3832,6 @@ test "accept/connect/send_zc/recv" {
38313832 // Second completion of zero-copy send.
38323833 // IORING_CQE_F_NOTIF in flags signals that kernel is done with send_buffer
38333834 cqe_send = try ring.copy_cqe();
3834 if (cqe_send.err() == .INVAL) return error.SkipZigTest;
38353835 try testing.expectEqual(linux.io_uring_cqe{
38363836 .user_data = 0xeeeeeeee,
38373837 .res = 0,