diff options
Diffstat (limited to 'test/sq-poll-dup.c')
-rw-r--r-- | test/sq-poll-dup.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/test/sq-poll-dup.c b/test/sq-poll-dup.c index eeb619c..6a72b82 100644 --- a/test/sq-poll-dup.c +++ b/test/sq-poll-dup.c @@ -10,7 +10,6 @@ #include <string.h> #include <fcntl.h> #include <sys/types.h> -#include <sys/poll.h> #include <sys/eventfd.h> #include <sys/resource.h> @@ -29,9 +28,14 @@ static struct io_uring rings[NR_RINGS]; static int wait_io(struct io_uring *ring, int nr_ios) { struct io_uring_cqe *cqe; + int ret; while (nr_ios) { - io_uring_wait_cqe(ring, &cqe); + ret = io_uring_wait_cqe(ring, &cqe); + if (ret) { + fprintf(stderr, "wait_ret=%d\n", ret); + return 1; + } if (cqe->res != BS) { fprintf(stderr, "Unexpected ret %d\n", cqe->res); return 1; @@ -123,7 +127,7 @@ static int test(int fd, int do_dup_and_close, int close_ring) ring_fd = dup(rings[0].ring_fd); if (close_ring) close(rings[0].ring_fd); - rings[0].ring_fd = ring_fd; + rings[0].ring_fd = rings[0].enter_ring_fd = ring_fd; if (do_dup_and_close) goto done; @@ -160,13 +164,16 @@ int main(int argc, char *argv[]) if (argc > 1) { fname = argv[1]; } else { - fname = ".basic-rw"; + fname = ".basic-rw-poll-dup"; t_create_file(fname, FILE_SIZE); } vecs = t_create_buffers(BUFFERS, BS); fd = open(fname, O_RDONLY | O_DIRECT); + if (fname != argv[1]) + unlink(fname); + if (fd < 0) { perror("open"); return -1; @@ -191,11 +198,7 @@ int main(int argc, char *argv[]) goto err; } - if (fname != argv[1]) - unlink(fname); return 0; err: - if (fname != argv[1]) - unlink(fname); return 1; } |