api: shorten function checks (and put each into a different scope)
[libc-test] / src / api / unistd.c
1 #include <unistd.h>
2 #define T(t) (t*)0;
3 #define F(t,n) {t *y = &x.n;}
4 #define C(n) switch(n){case n:;}
5 static void f()
6 {
7 C(_POSIX_VERSION)
8 C(_POSIX2_VERSION)
9 #ifdef _XOPEN_SOURCE)
10 C(_XOPEN_VERSION)
11 #endif
12 C(F_OK)
13 C(R_OK)
14 C(W_OK)
15 C(X_OK)
16 C(_CS_PATH)
17 C(_CS_POSIX_V7_ILP32_OFF32_CFLAGS)
18 C(_CS_POSIX_V7_ILP32_OFF32_LDFLAGS)
19 C(_CS_POSIX_V7_ILP32_OFF32_LIBS)
20 C(_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS)
21 C(_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS)
22 C(_CS_POSIX_V7_ILP32_OFFBIG_LIBS)
23 C(_CS_POSIX_V7_LP64_OFF64_CFLAGS)
24 C(_CS_POSIX_V7_LP64_OFF64_LDFLAGS)
25 C(_CS_POSIX_V7_LP64_OFF64_LIBS)
26 C(_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS)
27 C(_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS)
28 C(_CS_POSIX_V7_LPBIG_OFFBIG_LIBS)
29 C(_CS_POSIX_V7_THREADS_CFLAGS)
30 C(_CS_POSIX_V7_THREADS_LDFLAGS)
31 C(_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS)
32 C(_CS_V7_ENV)
33 C(SEEK_CUR)
34 C(SEEK_END)
35 C(SEEK_SET)
36 C(F_LOCK)
37 C(F_TEST)
38 C(F_TLOCK)
39 C(F_ULOCK)
40 C(_PC_2_SYMLINKS)
41 C(_PC_ALLOC_SIZE_MIN)
42 C(_PC_ASYNC_IO)
43 C(_PC_CHOWN_RESTRICTED)
44 C(_PC_FILESIZEBITS)
45 C(_PC_LINK_MAX)
46 C(_PC_MAX_CANON)
47 C(_PC_MAX_INPUT)
48 C(_PC_NAME_MAX)
49 C(_PC_NO_TRUNC)
50 C(_PC_PATH_MAX)
51 C(_PC_PIPE_BUF)
52 C(_PC_PRIO_IO)
53 C(_PC_REC_INCR_XFER_SIZE)
54 C(_PC_REC_MAX_XFER_SIZE)
55 C(_PC_REC_MIN_XFER_SIZE)
56 C(_PC_REC_XFER_ALIGN)
57 C(_PC_SYMLINK_MAX)
58 C(_PC_SYNC_IO)
59 C(_PC_TIMESTAMP_RESOLUTION)
60 C(_PC_VDISABLE)
61 C(_SC_2_C_BIND)
62 C(_SC_2_C_DEV)
63 C(_SC_2_CHAR_TERM)
64 C(_SC_2_FORT_DEV)
65 C(_SC_2_FORT_RUN)
66 C(_SC_2_LOCALEDEF)
67 C(_SC_2_PBS)
68 C(_SC_2_PBS_ACCOUNTING)
69 C(_SC_2_PBS_CHECKPOINT)
70 C(_SC_2_PBS_LOCATE)
71 C(_SC_2_PBS_MESSAGE)
72 C(_SC_2_PBS_TRACK)
73 C(_SC_2_SW_DEV)
74 C(_SC_2_UPE)
75 C(_SC_2_VERSION)
76 C(_SC_ADVISORY_INFO)
77 C(_SC_AIO_LISTIO_MAX)
78 C(_SC_AIO_MAX)
79 C(_SC_AIO_PRIO_DELTA_MAX)
80 C(_SC_ARG_MAX)
81 C(_SC_ASYNCHRONOUS_IO)
82 C(_SC_ATEXIT_MAX)
83 C(_SC_BARRIERS)
84 C(_SC_BC_BASE_MAX)
85 C(_SC_BC_DIM_MAX)
86 C(_SC_BC_SCALE_MAX)
87 C(_SC_BC_STRING_MAX)
88 C(_SC_CHILD_MAX)
89 C(_SC_CLK_TCK)
90 C(_SC_CLOCK_SELECTION)
91 C(_SC_COLL_WEIGHTS_MAX)
92 C(_SC_CPUTIME)
93 C(_SC_DELAYTIMER_MAX)
94 C(_SC_EXPR_NEST_MAX)
95 C(_SC_FSYNC)
96 C(_SC_GETGR_R_SIZE_MAX)
97 C(_SC_GETPW_R_SIZE_MAX)
98 C(_SC_HOST_NAME_MAX)
99 C(_SC_IOV_MAX)
100 C(_SC_IPV6)
101 C(_SC_JOB_CONTROL)
102 C(_SC_LINE_MAX)
103 C(_SC_LOGIN_NAME_MAX)
104 C(_SC_MAPPED_FILES)
105 C(_SC_MEMLOCK)
106 C(_SC_MEMLOCK_RANGE)
107 C(_SC_MEMORY_PROTECTION)
108 C(_SC_MESSAGE_PASSING)
109 C(_SC_MONOTONIC_CLOCK)
110 C(_SC_MQ_OPEN_MAX)
111 C(_SC_MQ_PRIO_MAX)
112 C(_SC_NGROUPS_MAX)
113 C(_SC_OPEN_MAX)
114 C(_SC_PAGE_SIZE)
115 C(_SC_PAGESIZE)
116 C(_SC_PRIORITIZED_IO)
117 C(_SC_PRIORITY_SCHEDULING)
118 C(_SC_RAW_SOCKETS)
119 C(_SC_RE_DUP_MAX)
120 C(_SC_READER_WRITER_LOCKS)
121 C(_SC_REALTIME_SIGNALS)
122 C(_SC_REGEXP)
123 C(_SC_RTSIG_MAX)
124 C(_SC_SAVED_IDS)
125 C(_SC_SEM_NSEMS_MAX)
126 C(_SC_SEM_VALUE_MAX)
127 C(_SC_SEMAPHORES)
128 C(_SC_SHARED_MEMORY_OBJECTS)
129 C(_SC_SHELL)
130 C(_SC_SIGQUEUE_MAX)
131 C(_SC_SPAWN)
132 C(_SC_SPIN_LOCKS)
133 C(_SC_SPORADIC_SERVER)
134 C(_SC_SS_REPL_MAX)
135 C(_SC_STREAM_MAX)
136 C(_SC_SYMLOOP_MAX)
137 C(_SC_SYNCHRONIZED_IO)
138 C(_SC_THREAD_ATTR_STACKADDR)
139 C(_SC_THREAD_ATTR_STACKSIZE)
140 C(_SC_THREAD_CPUTIME)
141 C(_SC_THREAD_DESTRUCTOR_ITERATIONS)
142 C(_SC_THREAD_KEYS_MAX)
143 C(_SC_THREAD_PRIO_INHERIT)
144 C(_SC_THREAD_PRIO_PROTECT)
145 C(_SC_THREAD_PRIORITY_SCHEDULING)
146 C(_SC_THREAD_PROCESS_SHARED)
147 C(_SC_THREAD_ROBUST_PRIO_INHERIT)
148 C(_SC_THREAD_ROBUST_PRIO_PROTECT)
149 C(_SC_THREAD_SAFE_FUNCTIONS)
150 C(_SC_THREAD_SPORADIC_SERVER)
151 C(_SC_THREAD_STACK_MIN)
152 C(_SC_THREAD_THREADS_MAX)
153 C(_SC_THREADS)
154 C(_SC_TIMEOUTS)
155 C(_SC_TIMER_MAX)
156 C(_SC_TIMERS)
157 C(_SC_TRACE)
158 C(_SC_TRACE_EVENT_FILTER)
159 C(_SC_TRACE_EVENT_NAME_MAX)
160 C(_SC_TRACE_INHERIT)
161 C(_SC_TRACE_LOG)
162 C(_SC_TRACE_NAME_MAX)
163 C(_SC_TRACE_SYS_MAX)
164 C(_SC_TRACE_USER_EVENT_MAX)
165 C(_SC_TTY_NAME_MAX)
166 C(_SC_TYPED_MEMORY_OBJECTS)
167 C(_SC_TZNAME_MAX)
168 C(_SC_V7_ILP32_OFF32)
169 C(_SC_V7_ILP32_OFFBIG)
170 C(_SC_V7_LP64_OFF64)
171 C(_SC_V7_LPBIG_OFFBIG)
172 C(_SC_VERSION)
173 C(_SC_XOPEN_CRYPT)
174 C(_SC_XOPEN_ENH_I18N)
175 C(_SC_XOPEN_REALTIME)
176 C(_SC_XOPEN_REALTIME_THREADS)
177 C(_SC_XOPEN_SHM)
178 C(_SC_XOPEN_STREAMS)
179 C(_SC_XOPEN_UNIX)
180 C(_SC_XOPEN_UUCP)
181 C(_SC_XOPEN_VERSION)
182 C(STDERR_FILENO)
183 C(STDIN_FILENO)
184 C(STDOUT_FILENO)
185 C(_POSIX_VDISABLE)
186 T(size_t)
187 T(ssize_t)
188 T(uid_t)
189 T(gid_t)
190 T(off_t)
191 T(pid_t)
192 T(intptr_t)
193 {void(*p)(int) = _exit;}
194 {int(*p)(const char*,int) = access;}
195 {unsigned(*p)(unsigned) = alarm;}
196 {int(*p)(const char*) = chdir;}
197 {int(*p)(const char*,uid_t,gid_t) = chown;}
198 {int(*p)(int) = close;}
199 {size_t(*p)(int,char*,size_t) = confstr;}
200 {char*(*p)(char*) = ctermid;}
201 {int(*p)(int) = dup;}
202 {int(*p)(int,int) = dup2;}
203 {char **x = environ};
204 {int(*p)(const char*,const char*,...) = execl;}
205 {int(*p)(const char*,const char*,...) = execle;}
206 {int(*p)(const char*,const char*,...) = execlp;}
207 {int(*p)(const char*,char*const[]) = execv;}
208 {int(*p)(const char*,char*const[],char*const[]) = execve;}
209 {int(*p)(const char*,char*const[]) = execvp;}
210 {int(*p)(int,const char*,int,int) = faccessat;}
211 {int(*p)(int) = fchdir;}
212 {int(*p)(int,uid_t,gid_t) = fchown;}
213 {int(*p)(int,const char*,uid_t,gid_t,int) = fchownat;}
214 {int(*p)(int) = fdatasync;}
215 {int(*p)(int,char*const[],char*const[]) = fexecve;}
216 {pid_t(*p)(void) = fork;}
217 {long(*p)(int,int) = fpathconf;}
218 {int(*p)(int) = fsync;}
219 {int(*p)(int,off_t) = ftruncate;}
220 {char*(*p)(char*,size_t) = getcwd;}
221 {gid_t(*p)(void) = getegid;}
222 {uid_t(*p)(void) = geteuid;}
223 {gid_t(*p)(void) = getgid;}
224 {int(*p)(int,gid_t[]) = getgroups;}
225 {int(*p)(char*,size_t) = gethostname;}
226 {char*(*p)(void) = getlogin;}
227 {int(*p)(char*,size_t) = getlogin_r;}
228 {int(*p)(int,char*const[],const char*) = getopt;}
229 {pid_t(*p)(pid_t) = getpgid;}
230 {pid_t(*p)(void) = getpgrp;}
231 {pid_t(*p)(void) = getpid;}
232 {pid_t(*p)(void) = getppid;}
233 {pid_t(*p)(pid_t) = getsid;}
234 {uid_t(*p)(void) = getuid;}
235 {int(*p)(int) = isatty;}
236 {int(*p)(const char*,uid_t,gid_t) = lchown;}
237 {int(*p)(const char*,const char*) = link;}
238 {int(*p)(int,const char*,int,const char*,int) = linkat;}
239 {off_t(*p)(int,off_t,int) = lseek;}
240 {char *x = optarg;}
241 {int i = opterr;}
242 {int i = optind;}
243 {int i = optopt;}
244 {long(*p)(const char*,int) = pathconf;}
245 {int(*p)(void) = pause;}
246 {int(*p)(int[]) = pipe;}
247 {ssize_t(*p)(int,void*,size_t,off_t) = pread;}
248 {ssize_t(*p)(int,const void*,size_t,off_t) = pwrite;}
249 {ssize_t(*p)(int,void*,size_t) = read;}
250 {ssize_t(*p)(const char*restrict,char*restrict,size_t) = readlink;}
251 {ssize_t(*p)(int,const char*restrict,char*restrict,size_t) = readlinkat;}
252 {int(*p)(const char*) = rmdir;}
253 {int(*p)(gid_t) = setegid;}
254 {int(*p)(uid_t) = seteuid;}
255 {int(*p)(gid_t) = setgid;}
256 {int(*p)(pid_t,pid_t) = setpgid;}
257 {pid_t(*p)(void) = setsid;}
258 {int(*p)(uid_t) = setuid;}
259 {unsigned(*p)(unsigned) = sleep;}
260 {int(*p)(const char*,const char*) = symlink;}
261 {int(*p)(const char*,int,const char*) = symlinkat;}
262 {long(*p)(int) = sysconf;}
263 {pid_t(*p)(int) = tcgetpgrp;}
264 {int(*p)(int,pid_t) = tcsetpgrp;}
265 {int(*p)(const char*,off_t) = truncate;}
266 {char*(*p)(int) = ttyname;}
267 {int(*p)(int,char*,size_t) = ttyname_r;}
268 {int(*p)(const char*) = unlink;}
269 {int(*p)(int,const char*,int) = unlinkat;}
270 {ssize_t(*p)(int,const void*,size_t) = write;}
271 #ifdef _XOPEN_SOURCE
272 {char*(*p)(const char*,const char*) = crypt;}
273 {void(*p)(char[],int) = encrypt;}
274 {long(*p)(void) = gethostid;}
275 {int(*p)(int,int,off_t) = lockf;}
276 {int(*p)(int) = nice;}
277 {int(*p)(gid_t,gid_t) = setregid;}
278 {int(*p)(uid_t,uid_t) = setreuid;}
279 {void(*p)(const void*restrict,void*restrict,ssize_t) = swab;}
280 {void(*p)(void) = sync;}
281 #endif
282 }