From 97c5773564916448fe1311a67adac9380ae572dd Mon Sep 17 00:00:00 2001 From: Ayush Ranjan Date: Wed, 1 Feb 2023 13:01:51 -0800 Subject: [PATCH] Deflake io_uring syscall tests that depend on IORING_ENTER_GETEVENTS. Multiple io_uring syscall tests were flaky because they were expecting io_uring_enter(2) to block until all operations were complete. But some tests did not specify IORING_ENTER_GETEVENTS in flags. So io_uring would return early and process requests async (as expected). The checks in the test would fail, because they would expect the requests to have been processed and results made available in the completion queue. PiperOrigin-RevId: 506400433 --- test/syscalls/linux/io_uring.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/syscalls/linux/io_uring.cc b/test/syscalls/linux/io_uring.cc index 8e37d2391..9cb214853 100644 --- a/test/syscalls/linux/io_uring.cc +++ b/test/syscalls/linux/io_uring.cc @@ -767,7 +767,7 @@ TEST(IOUringTest, SingleREADVTest) { uint32_t sq_tail = io_uring->load_sq_tail(); io_uring->store_sq_tail(sq_tail + 1); - int ret = io_uring->Enter(1, 1, 0, nullptr); + int ret = io_uring->Enter(1, 1, IORING_ENTER_GETEVENTS, nullptr); ASSERT_EQ(ret, 1); struct io_uring_cqe *cqe = io_uring->get_cqes(); @@ -826,7 +826,7 @@ TEST(IOUringTest, ReadvEmptyFile) { uint32_t sq_tail = io_uring->load_sq_tail(); io_uring->store_sq_tail(sq_tail + 1); - int ret = io_uring->Enter(1, 1, 0, nullptr); + int ret = io_uring->Enter(1, 1, IORING_ENTER_GETEVENTS, nullptr); ASSERT_EQ(ret, 1); struct io_uring_cqe *cqe = io_uring->get_cqes(); @@ -905,7 +905,7 @@ TEST(IOUringTest, ThreeREADVSingleEnterTest) { ASSERT_EQ(file_sz[1], 17); ASSERT_EQ(file_sz[2], 26); - int ret = io_uring->Enter(3, 3, 0, nullptr); + int ret = io_uring->Enter(3, 3, IORING_ENTER_GETEVENTS, nullptr); ASSERT_EQ(ret, 3); struct io_uring_cqe *cqe = io_uring->get_cqes(); @@ -1094,7 +1094,7 @@ TEST(IOUringTest, ShortReadREADVTest) { uint32_t sq_tail = io_uring->load_sq_tail(); io_uring->store_sq_tail(sq_tail + 1); - int ret = io_uring->Enter(1, 1, 0, nullptr); + int ret = io_uring->Enter(1, 1, IORING_ENTER_GETEVENTS, nullptr); ASSERT_EQ(ret, 1); struct io_uring_cqe *cqe = io_uring->get_cqes(); @@ -1167,7 +1167,7 @@ TEST(IOUringTest, NoReadPermissionsREADVTest) { uint32_t sq_tail = io_uring->load_sq_tail(); io_uring->store_sq_tail(sq_tail + 1); - int ret = io_uring->Enter(1, 1, 0, nullptr); + int ret = io_uring->Enter(1, 1, IORING_ENTER_GETEVENTS, nullptr); ASSERT_EQ(ret, 1); struct io_uring_cqe *cqe = io_uring->get_cqes(); @@ -1247,7 +1247,7 @@ TEST_P(IOUringSqeFieldsTest, READVWithInvalidSqeFieldValue) { uint32_t sq_tail = io_uring->load_sq_tail(); io_uring->store_sq_tail(sq_tail + 1); - int ret = io_uring->Enter(1, 1, 0, nullptr); + int ret = io_uring->Enter(1, 1, IORING_ENTER_GETEVENTS, nullptr); ASSERT_EQ(ret, 1); struct io_uring_cqe *cqe = io_uring->get_cqes();