]> granicus.if.org Git - strace/blob - tests/mq.c
Update copyright headers
[strace] / tests / mq.c
1 /*
2  * Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
3  * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
4  * Copyright (c) 2015-2018 The strace developers.
5  * All rights reserved.
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9
10 #include "tests.h"
11
12 #ifdef HAVE_MQUEUE_H
13
14 # include <fcntl.h>
15 # include <mqueue.h>
16 # include <stdio.h>
17 # include <stdlib.h>
18 # include <unistd.h>
19 # include <sys/stat.h>
20
21 int
22 main(void)
23 {
24         struct mq_attr attr;
25         (void) close(0);
26
27         char *name;
28         if (asprintf(&name, "/strace-mq-%u.sample", getpid()) < 0)
29                 perror_msg_and_fail("asprintf");
30
31         if (mq_open(name, O_CREAT, 0700, NULL))
32                 perror_msg_and_skip("mq_open");
33         printf("mq_open(\"%s\", O_RDONLY|O_CREAT, 0700, NULL) = 0\n", name + 1);
34
35         if (mq_getattr(0, &attr))
36                 perror_msg_and_skip("mq_getattr");
37         printf("mq_getsetattr(0, NULL, {mq_flags=0, mq_maxmsg=%lld"
38                ", mq_msgsize=%lld, mq_curmsgs=0}) = 0\n",
39                (long long) attr.mq_maxmsg,
40                (long long) attr.mq_msgsize);
41
42         if (mq_setattr(0, &attr, NULL))
43                 perror_msg_and_skip("mq_setattr");
44         printf("mq_getsetattr(0, {mq_flags=0, mq_maxmsg=%lld"
45                ", mq_msgsize=%lld, mq_curmsgs=0}, NULL) = 0\n",
46                (long long) attr.mq_maxmsg,
47                (long long) attr.mq_msgsize);
48
49         if (mq_unlink(name))
50                 perror_msg_and_skip("mq_unlink");
51         printf("mq_unlink(\"%s\") = 0\n", name + 1);
52
53         puts("+++ exited with 0 +++");
54         return 0;
55 }
56
57 #else
58
59 SKIP_MAIN_UNDEFINED("HAVE_MQUEUE_H")
60
61 #endif