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

Function test_sparse_updates

test/file-register.c:623–680  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

621}
622
623static int test_sparse_updates(void)
624{
625 struct io_uring ring;
626 int ret, i, *fds, newfd;
627
628 ret = io_uring_queue_init(8, &ring, 0);
629 if (ret) {
630 fprintf(stderr, "queue_init: %d\n", ret);
631 return ret;
632 }
633
634 fds = t_malloc(256 * sizeof(int));
635 for (i = 0; i < 256; i++)
636 fds[i] = -1;
637
638 ret = io_uring_register_files(&ring, fds, 256);
639 if (ret) {
640 fprintf(stderr, "file_register: %d\n", ret);
641 free(fds);
642 return ret;
643 }
644
645 newfd = 1;
646 for (i = 0; i < 256; i++) {
647 ret = io_uring_register_files_update(&ring, i, &newfd, 1);
648 if (ret != 1) {
649 fprintf(stderr, "file_update: %d\n", ret);
650 free(fds);
651 return ret;
652 }
653 }
654 io_uring_unregister_files(&ring);
655
656 for (i = 0; i < 256; i++)
657 fds[i] = 1;
658
659 ret = io_uring_register_files(&ring, fds, 256);
660 if (ret) {
661 fprintf(stderr, "file_register: %d\n", ret);
662 free(fds);
663 return ret;
664 }
665
666 newfd = -1;
667 for (i = 0; i < 256; i++) {
668 ret = io_uring_register_files_update(&ring, i, &newfd, 1);
669 if (ret != 1) {
670 fprintf(stderr, "file_update: %d\n", ret);
671 free(fds);
672 return ret;
673 }
674 }
675 io_uring_unregister_files(&ring);
676
677 io_uring_queue_exit(&ring);
678 free(fds);
679 return 0;
680}

Callers 1

mainFunction · 0.85

Calls 6

io_uring_queue_initFunction · 0.85
t_mallocFunction · 0.85
io_uring_register_filesFunction · 0.85
io_uring_queue_exitFunction · 0.85

Tested by

no test coverage detected