Blame


1 0efd7c9a 2022-07-30 op #if TEST_GETEXECNAME
2 0efd7c9a 2022-07-30 op #include <stdlib.h>
3 0efd7c9a 2022-07-30 op
4 0efd7c9a 2022-07-30 op int
5 0efd7c9a 2022-07-30 op main(void)
6 0efd7c9a 2022-07-30 op {
7 0efd7c9a 2022-07-30 op const char * progname;
8 0efd7c9a 2022-07-30 op
9 0efd7c9a 2022-07-30 op progname = getexecname();
10 0efd7c9a 2022-07-30 op return progname == NULL;
11 0efd7c9a 2022-07-30 op }
12 0efd7c9a 2022-07-30 op #endif /* TEST_GETEXECNAME */
13 0efd7c9a 2022-07-30 op #if TEST_GETPROGNAME
14 0efd7c9a 2022-07-30 op #include <stdlib.h>
15 0efd7c9a 2022-07-30 op
16 0efd7c9a 2022-07-30 op int
17 0efd7c9a 2022-07-30 op main(void)
18 0efd7c9a 2022-07-30 op {
19 0efd7c9a 2022-07-30 op const char * progname;
20 0efd7c9a 2022-07-30 op
21 0efd7c9a 2022-07-30 op progname = getprogname();
22 0efd7c9a 2022-07-30 op return progname == NULL;
23 0efd7c9a 2022-07-30 op }
24 0efd7c9a 2022-07-30 op #endif /* TEST_GETPROGNAME */
25 0efd7c9a 2022-07-30 op #if TEST_LIBEVENT
26 0efd7c9a 2022-07-30 op #include <event.h>
27 0efd7c9a 2022-07-30 op
28 0efd7c9a 2022-07-30 op int
29 0efd7c9a 2022-07-30 op main(void)
30 0efd7c9a 2022-07-30 op {
31 0efd7c9a 2022-07-30 op struct event ev;
32 0efd7c9a 2022-07-30 op
33 0efd7c9a 2022-07-30 op event_set(&ev, 0, EV_READ, NULL, NULL);
34 0efd7c9a 2022-07-30 op event_add(&ev, NULL);
35 0efd7c9a 2022-07-30 op event_del(&ev);
36 0efd7c9a 2022-07-30 op return 0;
37 0efd7c9a 2022-07-30 op }
38 0efd7c9a 2022-07-30 op #endif /* TEST_LIBEVENT */
39 0efd7c9a 2022-07-30 op #if TEST_LIBEVENT2
40 0efd7c9a 2022-07-30 op #include <event2/event.h>
41 0efd7c9a 2022-07-30 op #include <event2/event_compat.h>
42 0efd7c9a 2022-07-30 op #include <event2/event_struct.h>
43 0efd7c9a 2022-07-30 op #include <event2/buffer.h>
44 0efd7c9a 2022-07-30 op #include <event2/buffer_compat.h>
45 0efd7c9a 2022-07-30 op #include <event2/bufferevent.h>
46 0efd7c9a 2022-07-30 op #include <event2/bufferevent_struct.h>
47 0efd7c9a 2022-07-30 op #include <event2/bufferevent_compat.h>
48 0efd7c9a 2022-07-30 op
49 0efd7c9a 2022-07-30 op int
50 0efd7c9a 2022-07-30 op main(void)
51 0efd7c9a 2022-07-30 op {
52 0efd7c9a 2022-07-30 op struct event ev;
53 0efd7c9a 2022-07-30 op
54 0efd7c9a 2022-07-30 op event_set(&ev, 0, EV_READ, NULL, NULL);
55 0efd7c9a 2022-07-30 op event_add(&ev, NULL);
56 0efd7c9a 2022-07-30 op event_del(&ev);
57 0efd7c9a 2022-07-30 op return 0;
58 0efd7c9a 2022-07-30 op }
59 0efd7c9a 2022-07-30 op #endif /* TEST_LIBEVENT2 */
60 0efd7c9a 2022-07-30 op #if TEST_LIB_SOCKET
61 0efd7c9a 2022-07-30 op #include <sys/socket.h>
62 0efd7c9a 2022-07-30 op
63 0efd7c9a 2022-07-30 op int
64 0efd7c9a 2022-07-30 op main(void)
65 0efd7c9a 2022-07-30 op {
66 0efd7c9a 2022-07-30 op int fds[2], c;
67 0efd7c9a 2022-07-30 op
68 0efd7c9a 2022-07-30 op c = socketpair(AF_UNIX, SOCK_STREAM, 0, fds);
69 0efd7c9a 2022-07-30 op return c == -1;
70 0efd7c9a 2022-07-30 op }
71 0efd7c9a 2022-07-30 op #endif /* TEST_LIB_SOCKET */
72 0efd7c9a 2022-07-30 op #if TEST_PLEDGE
73 0efd7c9a 2022-07-30 op #include <unistd.h>
74 0efd7c9a 2022-07-30 op
75 0efd7c9a 2022-07-30 op int
76 0efd7c9a 2022-07-30 op main(void)
77 0efd7c9a 2022-07-30 op {
78 0efd7c9a 2022-07-30 op return !!pledge("stdio", NULL);
79 0efd7c9a 2022-07-30 op }
80 0efd7c9a 2022-07-30 op #endif /* TEST_PLEDGE */
81 0efd7c9a 2022-07-30 op #if TEST_PROGRAM_INVOCATION_SHORT_NAME
82 0efd7c9a 2022-07-30 op #define _GNU_SOURCE /* See feature_test_macros(7) */
83 0efd7c9a 2022-07-30 op #include <errno.h>
84 0efd7c9a 2022-07-30 op
85 0efd7c9a 2022-07-30 op int
86 0efd7c9a 2022-07-30 op main(void)
87 0efd7c9a 2022-07-30 op {
88 0efd7c9a 2022-07-30 op
89 0efd7c9a 2022-07-30 op return !program_invocation_short_name;
90 0efd7c9a 2022-07-30 op }
91 0efd7c9a 2022-07-30 op #endif /* TEST_PROGRAM_INVOCATION_SHORT_NAME */
92 0efd7c9a 2022-07-30 op #if TEST_PR_SET_NAME
93 0efd7c9a 2022-07-30 op #include <sys/prctl.h>
94 0efd7c9a 2022-07-30 op
95 0efd7c9a 2022-07-30 op int
96 0efd7c9a 2022-07-30 op main(void)
97 0efd7c9a 2022-07-30 op {
98 0efd7c9a 2022-07-30 op prctl(PR_SET_NAME, "foo");
99 0efd7c9a 2022-07-30 op return 0;
100 0efd7c9a 2022-07-30 op }
101 0efd7c9a 2022-07-30 op #endif /* TEST_PR_SET_NAME */
102 cfe57149 2022-07-30 op #if TEST_SO_SPLICE
103 cfe57149 2022-07-30 op #include <sys/socket.h>
104 cfe57149 2022-07-30 op
105 cfe57149 2022-07-30 op int
106 cfe57149 2022-07-30 op main(void)
107 cfe57149 2022-07-30 op {
108 cfe57149 2022-07-30 op int src = 0, dst = 1;
109 cfe57149 2022-07-30 op
110 cfe57149 2022-07-30 op /*
111 cfe57149 2022-07-30 op * invalid usage, i'm only interested in checking if it
112 cfe57149 2022-07-30 op * compiles
113 cfe57149 2022-07-30 op */
114 cfe57149 2022-07-30 op setsockopt(src, SOL_SOCKET, SO_SPLICE, &dst, sizeof(int));
115 cfe57149 2022-07-30 op return 0;
116 cfe57149 2022-07-30 op }
117 cfe57149 2022-07-30 op #endif /* TEST_SO_SPLICE */
118 0efd7c9a 2022-07-30 op #if TEST_STATIC
119 0efd7c9a 2022-07-30 op int
120 0efd7c9a 2022-07-30 op main(void)
121 0efd7c9a 2022-07-30 op {
122 0efd7c9a 2022-07-30 op return 0; /* not meant to do anything */
123 0efd7c9a 2022-07-30 op }
124 0efd7c9a 2022-07-30 op #endif /* TEST_STATIC */
125 0efd7c9a 2022-07-30 op #if TEST_STRLCAT
126 0efd7c9a 2022-07-30 op #include <string.h>
127 0efd7c9a 2022-07-30 op
128 0efd7c9a 2022-07-30 op int
129 0efd7c9a 2022-07-30 op main(void)
130 0efd7c9a 2022-07-30 op {
131 0efd7c9a 2022-07-30 op char buf[3] = "a";
132 0efd7c9a 2022-07-30 op return ! (strlcat(buf, "b", sizeof(buf)) == 2 &&
133 0efd7c9a 2022-07-30 op buf[0] == 'a' && buf[1] == 'b' && buf[2] == '\0');
134 0efd7c9a 2022-07-30 op }
135 0efd7c9a 2022-07-30 op #endif /* TEST_STRLCAT */
136 0efd7c9a 2022-07-30 op #if TEST_STRLCPY
137 0efd7c9a 2022-07-30 op #include <string.h>
138 0efd7c9a 2022-07-30 op
139 0efd7c9a 2022-07-30 op int
140 0efd7c9a 2022-07-30 op main(void)
141 0efd7c9a 2022-07-30 op {
142 0efd7c9a 2022-07-30 op char buf[2] = "";
143 0efd7c9a 2022-07-30 op return ! (strlcpy(buf, "a", sizeof(buf)) == 1 &&
144 0efd7c9a 2022-07-30 op buf[0] == 'a' && buf[1] == '\0');
145 0efd7c9a 2022-07-30 op }
146 0efd7c9a 2022-07-30 op #endif /* TEST_STRLCPY */
147 0efd7c9a 2022-07-30 op #if TEST_STRTONUM
148 0efd7c9a 2022-07-30 op /*
149 0efd7c9a 2022-07-30 op * Copyright (c) 2015 Ingo Schwarze <schwarze@openbsd.org>
150 0efd7c9a 2022-07-30 op *
151 0efd7c9a 2022-07-30 op * Permission to use, copy, modify, and distribute this software for any
152 0efd7c9a 2022-07-30 op * purpose with or without fee is hereby granted, provided that the above
153 0efd7c9a 2022-07-30 op * copyright notice and this permission notice appear in all copies.
154 0efd7c9a 2022-07-30 op *
155 0efd7c9a 2022-07-30 op * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
156 0efd7c9a 2022-07-30 op * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
157 0efd7c9a 2022-07-30 op * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
158 0efd7c9a 2022-07-30 op * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
159 0efd7c9a 2022-07-30 op * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
160 0efd7c9a 2022-07-30 op * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
161 0efd7c9a 2022-07-30 op * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
162 0efd7c9a 2022-07-30 op */
163 0efd7c9a 2022-07-30 op #ifdef __NetBSD__
164 0efd7c9a 2022-07-30 op # define _OPENBSD_SOURCE
165 0efd7c9a 2022-07-30 op #endif
166 0efd7c9a 2022-07-30 op #include <stdlib.h>
167 0efd7c9a 2022-07-30 op
168 0efd7c9a 2022-07-30 op int
169 0efd7c9a 2022-07-30 op main(void)
170 0efd7c9a 2022-07-30 op {
171 0efd7c9a 2022-07-30 op const char *errstr;
172 0efd7c9a 2022-07-30 op
173 0efd7c9a 2022-07-30 op if (strtonum("1", 0, 2, &errstr) != 1)
174 0efd7c9a 2022-07-30 op return 1;
175 0efd7c9a 2022-07-30 op if (errstr != NULL)
176 0efd7c9a 2022-07-30 op return 2;
177 0efd7c9a 2022-07-30 op if (strtonum("1x", 0, 2, &errstr) != 0)
178 0efd7c9a 2022-07-30 op return 3;
179 0efd7c9a 2022-07-30 op if (errstr == NULL)
180 0efd7c9a 2022-07-30 op return 4;
181 0efd7c9a 2022-07-30 op if (strtonum("2", 0, 1, &errstr) != 0)
182 0efd7c9a 2022-07-30 op return 5;
183 0efd7c9a 2022-07-30 op if (errstr == NULL)
184 0efd7c9a 2022-07-30 op return 6;
185 0efd7c9a 2022-07-30 op if (strtonum("0", 1, 2, &errstr) != 0)
186 0efd7c9a 2022-07-30 op return 7;
187 0efd7c9a 2022-07-30 op if (errstr == NULL)
188 0efd7c9a 2022-07-30 op return 8;
189 0efd7c9a 2022-07-30 op return 0;
190 0efd7c9a 2022-07-30 op }
191 0efd7c9a 2022-07-30 op #endif /* TEST_STRTONUM */
192 0efd7c9a 2022-07-30 op #if TEST_UNVEIL
193 0efd7c9a 2022-07-30 op #include <unistd.h>
194 0efd7c9a 2022-07-30 op
195 0efd7c9a 2022-07-30 op int
196 0efd7c9a 2022-07-30 op main(void)
197 0efd7c9a 2022-07-30 op {
198 0efd7c9a 2022-07-30 op return -1 != unveil(NULL, NULL);
199 0efd7c9a 2022-07-30 op }
200 0efd7c9a 2022-07-30 op #endif /* TEST_UNVEIL */
201 0efd7c9a 2022-07-30 op #if TEST__MMD
202 0efd7c9a 2022-07-30 op int
203 0efd7c9a 2022-07-30 op main(void)
204 0efd7c9a 2022-07-30 op {
205 0efd7c9a 2022-07-30 op return 0;
206 0efd7c9a 2022-07-30 op }
207 0efd7c9a 2022-07-30 op #endif /* TEST_NOOP */
208 0efd7c9a 2022-07-30 op #if TEST___PROGNAME
209 0efd7c9a 2022-07-30 op int
210 0efd7c9a 2022-07-30 op main(void)
211 0efd7c9a 2022-07-30 op {
212 0efd7c9a 2022-07-30 op extern char *__progname;
213 0efd7c9a 2022-07-30 op
214 0efd7c9a 2022-07-30 op return !__progname;
215 0efd7c9a 2022-07-30 op }
216 0efd7c9a 2022-07-30 op #endif /* TEST___PROGNAME */