summaryrefslogtreecommitdiffstats
path: root/contrib/libs/liburing/test/ringbuf-read.c
diff options
context:
space:
mode:
authorthegeorg <[email protected]>2023-07-26 17:26:21 +0300
committerthegeorg <[email protected]>2023-07-26 17:26:21 +0300
commit3785d5f97965bccf048718d8717904cf50f9f8f9 (patch)
treeb7ce8ae67d7eb7fcf7767c54379f0564c281147f /contrib/libs/liburing/test/ringbuf-read.c
parent1f6b57071583f89299bb5abd3863d594f23c5be5 (diff)
Update contrib/libs/liburing to 2.4
Diffstat (limited to 'contrib/libs/liburing/test/ringbuf-read.c')
-rw-r--r--contrib/libs/liburing/test/ringbuf-read.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/contrib/libs/liburing/test/ringbuf-read.c b/contrib/libs/liburing/test/ringbuf-read.c
index 2eede182130..5ff6738b048 100644
--- a/contrib/libs/liburing/test/ringbuf-read.c
+++ b/contrib/libs/liburing/test/ringbuf-read.c
@@ -38,7 +38,6 @@ static int verify_buffer(char *buf, char val)
static int test(const char *filename, int dio, int async)
{
- struct io_uring_buf_reg reg = { };
struct io_uring_sqe *sqe;
struct io_uring_cqe *cqe;
struct io_uring ring;
@@ -53,10 +52,13 @@ static int test(const char *filename, int dio, int async)
return 1;
}
- if (dio)
+ if (dio) {
fd = open(filename, O_DIRECT | O_RDONLY);
- else
+ if (fd < 0 && errno == EINVAL)
+ return T_EXIT_SKIP;
+ } else {
fd = open(filename, O_RDONLY);
+ }
if (fd < 0) {
perror("open");
return 1;
@@ -66,15 +68,9 @@ static int test(const char *filename, int dio, int async)
if (posix_memalign((void **) &buf, 4096, FSIZE))
return 1;
- if (posix_memalign((void **) &br, 4096, 4096))
- return 1;
-
- reg.ring_addr = (unsigned long) br;
- reg.ring_entries = NR_BUFS;
- reg.bgid = 1;
- ret = io_uring_register_buf_ring(&ring, &reg, 0);
- if (ret) {
+ br = io_uring_setup_buf_ring(&ring, NR_BUFS, 1, 0, &ret);
+ if (!br) {
if (ret == -EINVAL) {
no_buf_ring = 1;
return 0;
@@ -164,7 +160,7 @@ int main(int argc, char *argv[])
close(fd);
ret = test(fname, 1, 0);
- if (ret) {
+ if (ret == T_EXIT_FAIL) {
fprintf(stderr, "dio test failed\n");
goto err;
}
@@ -178,13 +174,13 @@ int main(int argc, char *argv[])
}
ret = test(fname, 1, 1);
- if (ret) {
+ if (ret == T_EXIT_FAIL) {
fprintf(stderr, "dio async test failed\n");
goto err;
}
ret = test(fname, 0, 1);
- if (ret) {
+ if (ret == T_EXIT_FAIL) {
fprintf(stderr, "buffered async test failed\n");
goto err;
}