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

Function test_double_reg_unreg

test/buf-ring.c:107–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105}
106
107static int test_double_reg_unreg(int bgid)
108{
109 struct io_uring_buf_reg reg = { };
110 struct io_uring_buf_ring *br;
111 struct io_uring ring;
112 int ret;
113
114 ret = t_create_ring(1, &ring, 0);
115 if (ret == T_SETUP_SKIP)
116 return 0;
117 else if (ret != T_SETUP_OK)
118 return 1;
119
120 br = io_uring_setup_buf_ring(&ring, 32, bgid, 0, &ret);
121 if (!br) {
122 fprintf(stderr, "Buffer ring register failed %d\n", ret);
123 return 1;
124 }
125
126 /* check that 2nd register with same bgid fails */
127 reg.ring_addr = (unsigned long) br;
128 reg.ring_entries = 32;
129 reg.bgid = bgid;
130
131 ret = io_uring_register_buf_ring(&ring, &reg, 0);
132 if (ret != -EEXIST) {
133 fprintf(stderr, "Buffer ring register failed %d\n", ret);
134 return 1;
135 }
136
137 ret = io_uring_free_buf_ring(&ring, br, 32, bgid);
138 if (ret) {
139 fprintf(stderr, "Buffer ring register failed %d\n", ret);
140 return 1;
141 }
142
143 ret = io_uring_unregister_buf_ring(&ring, bgid);
144 if (ret != -EINVAL && ret != -ENOENT) {
145 fprintf(stderr, "Buffer ring register failed %d\n", ret);
146 return 1;
147 }
148
149 io_uring_queue_exit(&ring);
150 return 0;
151}
152
153static int test_reg_unreg(int bgid)
154{

Callers 1

mainFunction · 0.85

Calls 6

t_create_ringFunction · 0.85
io_uring_setup_buf_ringFunction · 0.85
io_uring_free_buf_ringFunction · 0.85
io_uring_queue_exitFunction · 0.85

Tested by

no test coverage detected