diff options
author | Jens Axboe <axboe@kernel.dk> | 2024-03-28 10:35:23 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2024-03-28 10:35:23 -0600 |
commit | 4b45fd891947bd75b5fbbb5ebbcf63b55f2d3f6a (patch) | |
tree | 9776ceb2400e0fc88b06b52c43b6a633c82145ac | |
parent | c28878c52377f67b1e7a16c5e6a2bba1272cf870 (diff) | |
download | liburing-4b45fd891947bd75b5fbbb5ebbcf63b55f2d3f6a.tar.gz |
test/msg-ring: test DEFER_TASKRUN as well
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | test/msg-ring-flags.c | 32 | ||||
-rw-r--r-- | test/msg-ring.c | 33 |
2 files changed, 52 insertions, 13 deletions
diff --git a/test/msg-ring-flags.c b/test/msg-ring-flags.c index a44b1bd..ebf848c 100644 --- a/test/msg-ring-flags.c +++ b/test/msg-ring-flags.c @@ -117,7 +117,7 @@ static void *thread_fn(void *data) return NULL; } -int main(int argc, char *argv[]) +static int test(int ring_flags) { struct io_uring ring, ring2; pthread_t thread; @@ -125,16 +125,13 @@ int main(int argc, char *argv[]) void *ret2; int ret, i; - if (argc > 1) - return T_EXIT_SKIP; - - ret = io_uring_queue_init(2, &ring, 0); + ret = io_uring_queue_init(2, &ring, ring_flags); if (ret) { fprintf(stderr, "io_uring_queue_init failed for ring1: %d\n", ret); return T_EXIT_FAIL; } - ret = io_uring_queue_init(2, &ring2, 0); + ret = io_uring_queue_init(2, &ring2, ring_flags); if (ret) { fprintf(stderr, "io_uring_queue_init failed for ring2: %d\n", ret); return T_EXIT_FAIL; @@ -190,3 +187,26 @@ int main(int argc, char *argv[]) return T_EXIT_PASS; } + +int main(int argc, char *argv[]) +{ + int ret; + + if (argc > 1) + return T_EXIT_SKIP; + + ret = test(0); + if (ret == T_EXIT_FAIL) { + fprintf(stderr, "test ring_flags 0 failed\n"); + return ret; + } else if (ret == T_EXIT_SKIP) + return ret; + + ret = test(IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_DEFER_TASKRUN); + if (ret == T_EXIT_FAIL) { + fprintf(stderr, "test ring_flags defer failed\n"); + return ret; + } + + return ret; +} diff --git a/test/msg-ring.c b/test/msg-ring.c index cb6687f..bc8cdb5 100644 --- a/test/msg-ring.c +++ b/test/msg-ring.c @@ -314,25 +314,22 @@ static int test_disabled_ring(struct io_uring *ring, int flags) return 0; } -int main(int argc, char *argv[]) +static int test(int ring_flags) { struct io_uring ring, ring2, pring; int ret, i; - if (argc > 1) - return T_EXIT_SKIP; - - ret = io_uring_queue_init(8, &ring, 0); + ret = io_uring_queue_init(8, &ring, ring_flags); if (ret) { fprintf(stderr, "ring setup failed: %d\n", ret); return T_EXIT_FAIL; } - ret = io_uring_queue_init(8, &ring2, 0); + ret = io_uring_queue_init(8, &ring2, ring_flags); if (ret) { fprintf(stderr, "ring setup failed: %d\n", ret); return T_EXIT_FAIL; } - ret = io_uring_queue_init(8, &pring, IORING_SETUP_IOPOLL); + ret = io_uring_queue_init(8, &pring, ring_flags | IORING_SETUP_IOPOLL); if (ret) { fprintf(stderr, "ring setup failed: %d\n", ret); return T_EXIT_FAIL; @@ -418,3 +415,25 @@ int main(int argc, char *argv[]) io_uring_queue_exit(&ring2); return T_EXIT_PASS; } + +int main(int argc, char *argv[]) +{ + int ret; + + if (argc > 1) + return T_EXIT_SKIP; + + ret = test(0); + if (ret != T_EXIT_PASS) { + fprintf(stderr, "ring flags 0 failed\n"); + return ret; + } + + ret = test(IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_DEFER_TASKRUN); + if (ret != T_EXIT_PASS) { + fprintf(stderr, "ring flags defer failed\n"); + return ret; + } + + return ret; +} |