From: Stefan Roesch <[email protected]>
To: <[email protected]>, <[email protected]>
Cc: <[email protected]>
Subject: [PATCH v2 6/6] liburing: Test all configurations with NOP test
Date: Wed, 20 Apr 2022 12:15:24 -0700 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
This runs the NOP test with all four configurations:
- default SQE and CQE size
- large SQE size
- large CQE size
- large SQE and large CQE size
Signed-off-by: Stefan Roesch <[email protected]>
---
test/nop.c | 43 +++++++++++++------------------------------
test/test.h | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 48 insertions(+), 30 deletions(-)
create mode 100644 test/test.h
diff --git a/test/nop.c b/test/nop.c
index 0d9bb90..7bd0e6c 100644
--- a/test/nop.c
+++ b/test/nop.c
@@ -11,6 +11,7 @@
#include <fcntl.h>
#include "liburing.h"
+#include "test.h"
static int seq;
@@ -127,12 +128,14 @@ err:
return 1;
}
-static int test_p(struct io_uring_params *p)
+static int test_ring(unsigned flags)
{
struct io_uring ring;
+ struct io_uring_params p = { };
int ret;
- ret = io_uring_queue_init_params(8, &ring, p);
+ p.flags = flags;
+ ret = io_uring_queue_init_params(8, &ring, &p);
if (ret) {
fprintf(stderr, "ring setup failed: %d\n", ret);
return 1;
@@ -150,29 +153,11 @@ static int test_p(struct io_uring_params *p)
goto err;
}
- io_uring_queue_exit(&ring);
- return 0;
err:
io_uring_queue_exit(&ring);
return ret;
}
-static int test_normal_ring(void)
-{
- struct io_uring_params p = { };
-
- return test_p(&p);
-}
-
-static int test_big_ring(void)
-{
- struct io_uring_params p = { };
-
- p.flags = IORING_SETUP_SQE128;
- return test_p(&p);
-}
-
-
int main(int argc, char *argv[])
{
int ret;
@@ -180,17 +165,15 @@ int main(int argc, char *argv[])
if (argc > 1)
return 0;
- ret = test_normal_ring();
- if (ret) {
- fprintf(stderr, "Normal ring test failed\n");
- return ret;
- }
-
- ret = test_big_ring();
- if (ret) {
- fprintf(stderr, "Big ring test failed\n");
- return ret;
+ FOR_ALL_TEST_CONFIGS {
+ fprintf(stderr, "Testing %s config\n", IORING_GET_TEST_CONFIG_DESCRIPTION());
+ ret = test_ring(IORING_GET_TEST_CONFIG_FLAGS());
+ if (ret) {
+ fprintf(stderr, "Normal ring test failed\n");
+ return ret;
+ }
}
+ fprintf(stderr, "PASS\n");
return 0;
}
diff --git a/test/test.h b/test/test.h
new file mode 100644
index 0000000..3628163
--- /dev/null
+++ b/test/test.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Description: Test configs for tests.
+ */
+#ifndef LIBURING_TEST_H
+#define LIBURING_TEST_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct io_uring_test_config {
+ unsigned int flags;
+ const char *description;
+} io_uring_test_config;
+
+io_uring_test_config io_uring_test_configs[] = {
+ { 0, "default" },
+ { IORING_SETUP_SQE128, "large SQE"},
+ { IORING_SETUP_CQE32, "large CQE"},
+ { IORING_SETUP_SQE128 | IORING_SETUP_CQE32, "large SQE/CQE" },
+};
+
+#define FOR_ALL_TEST_CONFIGS \
+ for (int i = 0; i < sizeof(io_uring_test_configs) / sizeof(io_uring_test_configs[0]); i++)
+
+#define IORING_GET_TEST_CONFIG_FLAGS() (io_uring_test_configs[i].flags)
+#define IORING_GET_TEST_CONFIG_DESCRIPTION() (io_uring_test_configs[i].description)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--
2.30.2
next prev parent reply other threads:[~2022-04-20 19:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-20 19:15 [PATCH v2 0/6] liburing: add support for large CQE sizes Stefan Roesch
2022-04-20 19:15 ` [PATCH v2 1/6] liburing: Update io_uring.h with large CQE kernel changes Stefan Roesch
2022-04-20 19:15 ` [PATCH v2 2/6] liburing: increase mmap size for large CQE's Stefan Roesch
2022-04-20 19:15 ` [PATCH v2 3/6] liburing: return correct ring " Stefan Roesch
2022-04-20 19:15 ` [PATCH v2 4/6] liburing: index large CQE's correctly Stefan Roesch
2022-04-20 19:15 ` [PATCH v2 5/6] liburing: add large CQE tests to nop test Stefan Roesch
2022-04-20 19:15 ` Stefan Roesch [this message]
2022-04-20 22:45 ` [PATCH v2 0/6] liburing: add support for large CQE sizes Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox