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

Function test_same

test/regbuf-clone.c:582–622  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

580}
581
582static int test_same(void)
583{
584 struct iovec vecs[2] = { };
585 struct io_uring src;
586 int ret;
587
588 ret = io_uring_queue_init(1, &src, 0);
589 if (ret) {
590 fprintf(stderr, "ring_init: %d\n", ret);
591 return T_EXIT_FAIL;
592 }
593
594 if (posix_memalign(&vecs[0].iov_base, 4096, BUF_SIZE))
595 return T_EXIT_SKIP;
596 vecs[0].iov_len = BUF_SIZE;
597
598 vecs[1].iov_base = NULL;
599 vecs[1].iov_len = 0;
600
601 ret = io_uring_register_buffers(&src, vecs, 2);
602 if (ret) {
603 fprintf(stderr, "reg buffers: %d\n", ret);
604 return T_EXIT_FAIL;
605 }
606
607 ret = io_uring_clone_buffers_offset(&src, &src, 1, 0, 2, IORING_REGISTER_DST_REPLACE);
608 if (ret) {
609 fprintf(stderr, "clone offset: %d\n", ret);
610 return T_EXIT_FAIL;
611 }
612
613 ret = io_uring_unregister_buffers(&src);
614 if (ret) {
615 fprintf(stderr, "rsc unregister buffers: %d\n", ret);
616 return T_EXIT_FAIL;
617 }
618
619 free(vecs[0].iov_base);
620 io_uring_queue_exit(&src);
621 return T_EXIT_PASS;
622}
623
624int main(int argc, char *argv[])
625{

Callers 1

mainFunction · 0.85

Calls 5

io_uring_queue_initFunction · 0.85
io_uring_queue_exitFunction · 0.85

Tested by

no test coverage detected