aboutsummaryrefslogtreecommitdiff
path: root/test/sq-poll-dup.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/sq-poll-dup.c')
-rw-r--r--test/sq-poll-dup.c19
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;
}