MCPcopy Create free account
hub / github.com/axboe/liburing / main

Function main

test/min-timeout-wait.c:238–384  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

236}
237
238int main(int argc, char *argv[])
239{
240 struct io_uring ring1, ring2, ring3;
241 struct io_uring_params p = { };
242 int ret, no_sq_poll = 0;
243
244 if (argc > 1)
245 return 0;
246
247 ret = t_create_ring_params(8, &ring1, &p);
248 if (ret == T_SETUP_SKIP)
249 return T_EXIT_SKIP;
250 else if (ret != T_SETUP_OK)
251 return ret;
252 if (!(p.features & IORING_FEAT_MIN_TIMEOUT))
253 return T_EXIT_SKIP;
254
255 p.flags = IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_DEFER_TASKRUN;
256 ret = t_create_ring_params(8, &ring2, &p);
257 if (ret == T_SETUP_SKIP)
258 return T_EXIT_SKIP;
259 else if (ret != T_SETUP_OK)
260 return ret;
261
262 p.flags = IORING_SETUP_SQPOLL;
263 ret = t_create_ring_params(8, &ring3, &p);
264 if (ret != T_SETUP_OK)
265 no_sq_poll = 1;
266
267 ret = test_already(&ring1);
268 if (ret == T_EXIT_FAIL || ret == T_EXIT_SKIP)
269 return ret;
270
271 ret = test_already(&ring2);
272 if (ret == T_EXIT_FAIL)
273 return T_EXIT_FAIL;
274
275 if (!no_sq_poll) {
276 ret = test_already(&ring3);
277 if (ret == T_EXIT_FAIL)
278 return T_EXIT_FAIL;
279 }
280
281 ret = test_some(&ring1);
282 if (ret == T_EXIT_FAIL || ret == T_EXIT_SKIP)
283 return ret;
284
285 ret = test_some(&ring2);
286 if (ret == T_EXIT_FAIL)
287 return T_EXIT_FAIL;
288
289 if (!no_sq_poll) {
290 ret = test_some(&ring3);
291 if (ret == T_EXIT_FAIL)
292 return T_EXIT_FAIL;
293 }
294
295 ret = test_late(&ring1);

Callers

nothing calls this directly

Calls 10

t_create_ring_paramsFunction · 0.85
test_alreadyFunction · 0.85
test_someFunction · 0.85
test_lateFunction · 0.85
test_post_waitFunction · 0.85
test_some_waitFunction · 0.85
test_nothingFunction · 0.85
test_min_wait_biggestFunction · 0.85
test_min_wait_equalFunction · 0.85
io_uring_queue_exitFunction · 0.85

Tested by

no test coverage detected