From e522b27da39246de46722dba1762b2650bd6d387 Mon Sep 17 00:00:00 2001 From: Santiago Gimeno Date: Sun, 7 Dec 2025 22:40:05 +0100 Subject: [PATCH] test: add macros to run fs tests with io_uring (#4963 1/2) Added `TEST_FS_DECLARE`, `TEST_FS_ENTRY` and `TEST_FS_IMPL` so we can run test-fs.c tests both using the threadpool and io_uring implementations. --- test/runner.h | 17 +++++++++++++++++ test/task.h | 13 +++++++++++++ 2 files changed, 30 insertions(+) diff --git a/test/runner.h b/test/runner.h index 249d29196..23b7aa096 100644 --- a/test/runner.h +++ b/test/runner.h @@ -68,6 +68,23 @@ typedef struct { #define TEST_ENTRY_CUSTOM(name, is_helper, show_output, timeout) \ { #name, #name, &run_test_##name, is_helper, show_output, timeout }, +/* + * Macros for fs tests that, on linux, generate both normal and io_uring + * versions. + */ +#ifdef __linux__ +#define TEST_FS_DECLARE(name) \ + TEST_DECLARE(name) \ + TEST_DECLARE(name##_iouring) + +#define TEST_FS_ENTRY(name) \ + TEST_ENTRY(name) \ + TEST_ENTRY(name##_iouring) +#else +#define TEST_FS_DECLARE(name) TEST_DECLARE(name) +#define TEST_FS_ENTRY(name) TEST_ENTRY(name) +#endif + #define BENCHMARK_DECLARE(name) \ int run_benchmark_##name(void); diff --git a/test/task.h b/test/task.h index e16af1477..45674ff19 100644 --- a/test/task.h +++ b/test/task.h @@ -284,6 +284,19 @@ typedef enum { int run_benchmark_##name(void); \ int run_benchmark_##name(void) +#ifdef __linux__ +#define TEST_FS_IMPL(name) \ + int run_test_##name(void); \ + int run_test_##name##_iouring(void) { \ + uv_os_setenv("UV_USE_IO_URING", "1"); \ + uv_loop_configure(uv_default_loop(), UV_LOOP_USE_IO_URING_SQPOLL); \ + return run_test_##name(); \ + } \ + int run_test_##name(void) +#else +#define TEST_FS_IMPL(name) TEST_IMPL(name) +#endif + #define HELPER_IMPL(name) \ int run_helper_##name(void); \ int run_helper_##name(void)