diff options
Diffstat (limited to 'test/link-timeout.c')
-rw-r--r-- | test/link-timeout.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/test/link-timeout.c b/test/link-timeout.c index 5d8417f..ad638e9 100644 --- a/test/link-timeout.c +++ b/test/link-timeout.c @@ -9,7 +9,7 @@ #include <stdlib.h> #include <string.h> #include <fcntl.h> -#include <sys/poll.h> +#include <poll.h> #include "liburing.h" @@ -63,7 +63,7 @@ static int test_fail_two_link_timeouts(struct io_uring *ring) struct __kernel_timespec ts; struct io_uring_cqe *cqe; struct io_uring_sqe *sqe; - int ret, i; + int ret, i, nr_wait; ts.tv_sec = 1; ts.tv_nsec = 0; @@ -114,12 +114,13 @@ static int test_fail_two_link_timeouts(struct io_uring *ring) sqe->user_data = 4; ret = io_uring_submit(ring); - if (ret != 4) { + if (ret < 3) { printf("sqe submit failed: %d\n", ret); goto err; } + nr_wait = ret; - for (i = 0; i < 4; i++) { + for (i = 0; i < nr_wait; i++) { ret = io_uring_wait_cqe(ring, &cqe); if (ret < 0) { printf("wait completion %d\n", ret); @@ -619,6 +620,8 @@ static int test_timeout_link_chain1(struct io_uring *ring) io_uring_cqe_seen(ring, cqe); } + close(fds[0]); + close(fds[1]); return 0; err: return 1; @@ -713,6 +716,8 @@ static int test_timeout_link_chain2(struct io_uring *ring) io_uring_cqe_seen(ring, cqe); } + close(fds[0]); + close(fds[1]); return 0; err: return 1; @@ -833,6 +838,8 @@ static int test_timeout_link_chain3(struct io_uring *ring) io_uring_cqe_seen(ring, cqe); } + close(fds[0]); + close(fds[1]); return 0; err: return 1; @@ -917,6 +924,8 @@ static int test_timeout_link_chain4(struct io_uring *ring) io_uring_cqe_seen(ring, cqe); } + close(fds[0]); + close(fds[1]); return 0; err: return 1; @@ -973,14 +982,16 @@ static int test_timeout_link_chain5(struct io_uring *ring) } switch (cqe->user_data) { case 1: - if (cqe->res) { - fprintf(stderr, "Timeout got %d, wanted -EINVAL\n", + case 2: + if (cqe->res && cqe->res != -ECANCELED) { + fprintf(stderr, "Request got %d, wanted -EINVAL " + "or -ECANCELED\n", cqe->res); goto err; } break; - case 2: - if (cqe->res != -ECANCELED) { + case 3: + if (cqe->res != -ECANCELED && cqe->res != -EINVAL) { fprintf(stderr, "Link timeout got %d, wanted -ECANCELED\n", cqe->res); goto err; } |