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

Function test_stdout_io

test/stdout.c:153–199  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153static int test_stdout_io(struct io_uring *ring)
154{
155 struct io_uring_cqe *cqe;
156 struct io_uring_sqe *sqe;
157 struct iovec vecs;
158 int ret;
159
160 vecs.iov_base = "This is a pipe test\n";
161 vecs.iov_len = strlen(vecs.iov_base);
162
163 sqe = io_uring_get_sqe(ring);
164 if (!sqe) {
165 fprintf(stderr, "get sqe failed\n");
166 goto err;
167 }
168 io_uring_prep_writev(sqe, STDOUT_FILENO, &vecs, 1, 0);
169
170 ret = io_uring_submit(ring);
171 if (ret < 0) {
172 fprintf(stderr, "sqe submit failed: %d\n", ret);
173 goto err;
174 } else if (ret < 1) {
175 fprintf(stderr, "Submitted only %d\n", ret);
176 goto err;
177 }
178
179 ret = io_uring_wait_cqe(ring, &cqe);
180 if (ret < 0) {
181 fprintf(stderr, "wait completion %d\n", ret);
182 goto err;
183 }
184 if (cqe->res < 0) {
185 fprintf(stderr, "STDOUT write error: %s\n",
186 strerror(-cqe->res));
187 goto err;
188 }
189 if (cqe->res != vecs.iov_len) {
190 fprintf(stderr, "Got %d write, wanted %d\n", cqe->res,
191 (int)vecs.iov_len);
192 goto err;
193 }
194 io_uring_cqe_seen(ring, cqe);
195
196 return 0;
197err:
198 return 1;
199}
200
201int main(int argc, char *argv[])
202{

Callers 1

mainFunction · 0.85

Calls 2

io_uring_submitFunction · 0.85
io_uring_get_sqeFunction · 0.50

Tested by

no test coverage detected