]> granicus.if.org Git - strace/blob - tests/mmsg-silent.c
Update copyright headers
[strace] / tests / mmsg-silent.c
1 /*
2  * Check silent decoding of sendmmsg and recvmmsg syscalls.
3  *
4  * Copyright (c) 2016-2018 Dmitry V. Levin <ldv@altlinux.org>
5  * All rights reserved.
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9
10 #include "tests.h"
11 #include <stdio.h>
12
13 #include "msghdr.h"
14
15 int
16 main(void)
17 {
18         int fds[2];
19         if (socketpair(AF_UNIX, SOCK_STREAM, 0, fds))
20                 perror_msg_and_skip("socketpair");
21
22         char buf = 'A';
23         struct iovec iov = { .iov_base = &buf, .iov_len = sizeof(buf) };
24         struct mmsghdr mh = {
25                 .msg_hdr = {
26                         .msg_iov = &iov,
27                         .msg_iovlen = 1
28                 }
29         };
30
31         int rc = send_mmsg(fds[1], &mh, 1, MSG_DONTWAIT);
32         if (rc < 0)
33                 perror_msg_and_skip("sendmmsg");
34         printf("sendmmsg(%d, %p, 1, MSG_DONTWAIT) = %d\n", fds[1], &mh, rc);
35
36         struct timespec t = { .tv_sec = 0, .tv_nsec = 12345678 };
37         rc = recv_mmsg(fds[0], &mh, 1, MSG_DONTWAIT, &t);
38         printf("recvmmsg(%d, %p, 1, MSG_DONTWAIT, %p) = %d\n",
39                fds[0], &mh, &t, rc);
40
41         puts("+++ exited with 0 +++");
42         return 0;
43 }