On 11/7/22 7:35 PM, Dylan Yudaken wrote:
+static int test_defer_taskrun(void) +{ + struct io_uring_sqe *sqe; + struct io_uring ring; + int ret, fds[2]; + char buff = 'x'; + + ret = io_uring_queue_init(8, &ring, + IORING_SETUP_DEFER_TASKRUN | IORING_SETUP_SINGLE_ISSUER); + if (ret) + return T_EXIT_SKIP;
You return T_EXIT_SKIP from test_defer_taskrun(). But the call site is:
+ if (t_probe_defer_taskrun()) { + ret = test_defer_taskrun(); + if (ret) { + fprintf(stderr, "test_defer failed\n"); + return T_EXIT_FAIL; + } + }
T_EXIT_SKIP is 77. So the block inside the "if" is taken. End result you get T_EXIT_FAIL. T_EXIT_SKIP in your code doesn't really mean skip. -- Ammar Faizi