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

Function test_timeout_flags1

test/timeout.c:715–801  ·  view source on GitHub ↗

* Test timeout timeout timeout */

Source from the content-addressed store, hash-verified

713 * Test timeout <link> timeout <drain> timeout
714 */
715static int test_timeout_flags1(struct io_uring *ring)
716{
717 struct io_uring_sqe *sqe;
718 struct io_uring_cqe *cqe;
719 struct __kernel_timespec ts;
720 int ret, i;
721
722 msec_to_ts(&ts, TIMEOUT_MSEC);
723
724 sqe = io_uring_get_sqe(ring);
725 if (!sqe) {
726 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
727 goto err;
728 }
729 io_uring_prep_timeout(sqe, &ts, 0, 0);
730 sqe->user_data = 1;
731 sqe->flags |= IOSQE_IO_LINK;
732
733 sqe = io_uring_get_sqe(ring);
734 if (!sqe) {
735 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
736 goto err;
737 }
738 io_uring_prep_timeout(sqe, &ts, 0, 0);
739 sqe->user_data = 2;
740 sqe->flags |= IOSQE_IO_DRAIN;
741
742 sqe = io_uring_get_sqe(ring);
743 if (!sqe) {
744 fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__);
745 goto err;
746 }
747 io_uring_prep_timeout(sqe, &ts, 0, 0);
748 sqe->user_data = 3;
749
750 ret = io_uring_submit(ring);
751 if (ret <= 0) {
752 fprintf(stderr, "%s: sqe submit failed: %d\n", __FUNCTION__, ret);
753 goto err;
754 }
755
756 for (i = 0; i < 3; i++) {
757 ret = io_uring_wait_cqe(ring, &cqe);
758 if (ret < 0) {
759 fprintf(stderr, "%s: wait completion %d\n", __FUNCTION__, ret);
760 goto err;
761 }
762
763 if (cqe->res == -EINVAL) {
764 if (!i)
765 fprintf(stdout, "%s: timeout flags not supported\n",
766 __FUNCTION__);
767 io_uring_cqe_seen(ring, cqe);
768 continue;
769 }
770
771 switch (cqe->user_data) {
772 case 1:

Callers 1

mainFunction · 0.85

Calls 3

io_uring_submitFunction · 0.85
msec_to_tsFunction · 0.70
io_uring_get_sqeFunction · 0.50

Tested by

no test coverage detected