diff options
-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; +} |