blob: 4a176993b0c2e2c59a6929e7a1985b09c55be105 [file] [log] [blame]
Dmitry V. Levin2b69fd42016-04-20 22:51:28 +00001/*
2 * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. The name of the author may not be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#include "tests.h"
29#include <errno.h>
30
31#define CASE(x) case x: return #x
32
33const char *
34errno2name(void)
35{
36 switch (errno) {
37 /* names taken from linux/errnoent.h */
38#ifdef E2BIG
39 CASE(E2BIG);
40#endif
41#ifdef EACCES
42 CASE(EACCES);
43#endif
44#ifdef EADDRINUSE
45 CASE(EADDRINUSE);
46#endif
47#ifdef EADDRNOTAVAIL
48 CASE(EADDRNOTAVAIL);
49#endif
50#ifdef EADV
51 CASE(EADV);
52#endif
53#ifdef EAFNOSUPPORT
54 CASE(EAFNOSUPPORT);
55#endif
56#ifdef EAGAIN
57 CASE(EAGAIN);
58#endif
59#ifdef EALREADY
60 CASE(EALREADY);
61#endif
62#ifdef EBADCOOKIE
63 CASE(EBADCOOKIE);
64#endif
65#ifdef EBADE
66 CASE(EBADE);
67#endif
68#ifdef EBADF
69 CASE(EBADF);
70#endif
71#ifdef EBADFD
72 CASE(EBADFD);
73#endif
74#ifdef EBADHANDLE
75 CASE(EBADHANDLE);
76#endif
77#ifdef EBADMSG
78 CASE(EBADMSG);
79#endif
80#ifdef EBADR
81 CASE(EBADR);
82#endif
83#ifdef EBADRQC
84 CASE(EBADRQC);
85#endif
86#ifdef EBADSLT
87 CASE(EBADSLT);
88#endif
89#ifdef EBADTYPE
90 CASE(EBADTYPE);
91#endif
92#ifdef EBFONT
93 CASE(EBFONT);
94#endif
95#ifdef EBUSY
96 CASE(EBUSY);
97#endif
98#ifdef ECANCELED
99 CASE(ECANCELED);
100#endif
101#ifdef ECHILD
102 CASE(ECHILD);
103#endif
104#ifdef ECHRNG
105 CASE(ECHRNG);
106#endif
107#ifdef ECOMM
108 CASE(ECOMM);
109#endif
110#ifdef ECONNABORTED
111 CASE(ECONNABORTED);
112#endif
113#ifdef ECONNREFUSED
114 CASE(ECONNREFUSED);
115#endif
116#ifdef ECONNRESET
117 CASE(ECONNRESET);
118#endif
119#ifdef EDEADLK
120 CASE(EDEADLK);
121#endif
122#ifdef EDESTADDRREQ
123 CASE(EDESTADDRREQ);
124#endif
125#ifdef EDOM
126 CASE(EDOM);
127#endif
128#ifdef EDOTDOT
129 CASE(EDOTDOT);
130#endif
131#ifdef EDQUOT
132 CASE(EDQUOT);
133#endif
134#ifdef EEXIST
135 CASE(EEXIST);
136#endif
137#ifdef EFAULT
138 CASE(EFAULT);
139#endif
140#ifdef EFBIG
141 CASE(EFBIG);
142#endif
143#ifdef EHOSTDOWN
144 CASE(EHOSTDOWN);
145#endif
146#ifdef EHOSTUNREACH
147 CASE(EHOSTUNREACH);
148#endif
149#ifdef EHWPOISON
150 CASE(EHWPOISON);
151#endif
152#ifdef EIDRM
153 CASE(EIDRM);
154#endif
155#ifdef EILSEQ
156 CASE(EILSEQ);
157#endif
158#ifdef EINPROGRESS
159 CASE(EINPROGRESS);
160#endif
161#ifdef EINTR
162 CASE(EINTR);
163#endif
164#ifdef EINVAL
165 CASE(EINVAL);
166#endif
167#ifdef EIO
168 CASE(EIO);
169#endif
170#ifdef EIOCBQUEUED
171 CASE(EIOCBQUEUED);
172#endif
173#ifdef EISCONN
174 CASE(EISCONN);
175#endif
176#ifdef EISDIR
177 CASE(EISDIR);
178#endif
179#ifdef EISNAM
180 CASE(EISNAM);
181#endif
182#ifdef EJUKEBOX
183 CASE(EJUKEBOX);
184#endif
185#ifdef EKEYEXPIRED
186 CASE(EKEYEXPIRED);
187#endif
188#ifdef EKEYREJECTED
189 CASE(EKEYREJECTED);
190#endif
191#ifdef EKEYREVOKED
192 CASE(EKEYREVOKED);
193#endif
194#ifdef EL2HLT
195 CASE(EL2HLT);
196#endif
197#ifdef EL2NSYNC
198 CASE(EL2NSYNC);
199#endif
200#ifdef EL3HLT
201 CASE(EL3HLT);
202#endif
203#ifdef EL3RST
204 CASE(EL3RST);
205#endif
206#ifdef ELIBACC
207 CASE(ELIBACC);
208#endif
209#ifdef ELIBBAD
210 CASE(ELIBBAD);
211#endif
212#ifdef ELIBEXEC
213 CASE(ELIBEXEC);
214#endif
215#ifdef ELIBMAX
216 CASE(ELIBMAX);
217#endif
218#ifdef ELIBSCN
219 CASE(ELIBSCN);
220#endif
221#ifdef ELNRNG
222 CASE(ELNRNG);
223#endif
224#ifdef ELOOP
225 CASE(ELOOP);
226#endif
227#ifdef EMEDIUMTYPE
228 CASE(EMEDIUMTYPE);
229#endif
230#ifdef EMFILE
231 CASE(EMFILE);
232#endif
233#ifdef EMLINK
234 CASE(EMLINK);
235#endif
236#ifdef EMSGSIZE
237 CASE(EMSGSIZE);
238#endif
239#ifdef EMULTIHOP
240 CASE(EMULTIHOP);
241#endif
242#ifdef ENAMETOOLONG
243 CASE(ENAMETOOLONG);
244#endif
245#ifdef ENAVAIL
246 CASE(ENAVAIL);
247#endif
248#ifdef ENETDOWN
249 CASE(ENETDOWN);
250#endif
251#ifdef ENETRESET
252 CASE(ENETRESET);
253#endif
254#ifdef ENETUNREACH
255 CASE(ENETUNREACH);
256#endif
257#ifdef ENFILE
258 CASE(ENFILE);
259#endif
260#ifdef ENOANO
261 CASE(ENOANO);
262#endif
263#ifdef ENOBUFS
264 CASE(ENOBUFS);
265#endif
266#ifdef ENOCSI
267 CASE(ENOCSI);
268#endif
269#ifdef ENODATA
270 CASE(ENODATA);
271#endif
272#ifdef ENODEV
273 CASE(ENODEV);
274#endif
275#ifdef ENOENT
276 CASE(ENOENT);
277#endif
278#ifdef ENOEXEC
279 CASE(ENOEXEC);
280#endif
281#ifdef ENOIOCTLCMD
282 CASE(ENOIOCTLCMD);
283#endif
284#ifdef ENOKEY
285 CASE(ENOKEY);
286#endif
287#ifdef ENOLCK
288 CASE(ENOLCK);
289#endif
290#ifdef ENOLINK
291 CASE(ENOLINK);
292#endif
293#ifdef ENOMEDIUM
294 CASE(ENOMEDIUM);
295#endif
296#ifdef ENOMEM
297 CASE(ENOMEM);
298#endif
299#ifdef ENOMSG
300 CASE(ENOMSG);
301#endif
302#ifdef ENONET
303 CASE(ENONET);
304#endif
305#ifdef ENOPKG
306 CASE(ENOPKG);
307#endif
308#ifdef ENOPROTOOPT
309 CASE(ENOPROTOOPT);
310#endif
311#ifdef ENOSPC
312 CASE(ENOSPC);
313#endif
314#ifdef ENOSR
315 CASE(ENOSR);
316#endif
317#ifdef ENOSTR
318 CASE(ENOSTR);
319#endif
320#ifdef ENOSYS
321 CASE(ENOSYS);
322#endif
323#ifdef ENOTBLK
324 CASE(ENOTBLK);
325#endif
326#ifdef ENOTCONN
327 CASE(ENOTCONN);
328#endif
329#ifdef ENOTDIR
330 CASE(ENOTDIR);
331#endif
332#ifdef ENOTEMPTY
333 CASE(ENOTEMPTY);
334#endif
335#ifdef ENOTNAM
336 CASE(ENOTNAM);
337#endif
338#ifdef ENOTRECOVERABLE
339 CASE(ENOTRECOVERABLE);
340#endif
341#ifdef ENOTSOCK
342 CASE(ENOTSOCK);
343#endif
344#ifdef ENOTSUPP
345 CASE(ENOTSUPP);
346#endif
347#ifdef ENOTSYNC
348 CASE(ENOTSYNC);
349#endif
350#ifdef ENOTTY
351 CASE(ENOTTY);
352#endif
353#ifdef ENOTUNIQ
354 CASE(ENOTUNIQ);
355#endif
356#ifdef ENXIO
357 CASE(ENXIO);
358#endif
359#ifdef EOPENSTALE
360 CASE(EOPENSTALE);
361#endif
362#ifdef EOPNOTSUPP
363 CASE(EOPNOTSUPP);
364#endif
365#ifdef EOVERFLOW
366 CASE(EOVERFLOW);
367#endif
368#ifdef EOWNERDEAD
369 CASE(EOWNERDEAD);
370#endif
371#ifdef EPERM
372 CASE(EPERM);
373#endif
374#ifdef EPFNOSUPPORT
375 CASE(EPFNOSUPPORT);
376#endif
377#ifdef EPIPE
378 CASE(EPIPE);
379#endif
380#ifdef EPROBE_DEFER
381 CASE(EPROBE_DEFER);
382#endif
383#ifdef EPROTO
384 CASE(EPROTO);
385#endif
386#ifdef EPROTONOSUPPORT
387 CASE(EPROTONOSUPPORT);
388#endif
389#ifdef EPROTOTYPE
390 CASE(EPROTOTYPE);
391#endif
392#ifdef ERANGE
393 CASE(ERANGE);
394#endif
395#ifdef EREMCHG
396 CASE(EREMCHG);
397#endif
398#ifdef EREMOTE
399 CASE(EREMOTE);
400#endif
401#ifdef EREMOTEIO
402 CASE(EREMOTEIO);
403#endif
404#ifdef ERESTART
405 CASE(ERESTART);
406#endif
407#ifdef ERESTARTNOHAND
408 CASE(ERESTARTNOHAND);
409#endif
410#ifdef ERESTARTNOINTR
411 CASE(ERESTARTNOINTR);
412#endif
413#ifdef ERESTARTSYS
414 CASE(ERESTARTSYS);
415#endif
416#ifdef ERESTART_RESTARTBLOCK
417 CASE(ERESTART_RESTARTBLOCK);
418#endif
419#ifdef ERFKILL
420 CASE(ERFKILL);
421#endif
422#ifdef EROFS
423 CASE(EROFS);
424#endif
425#ifdef ESERVERFAULT
426 CASE(ESERVERFAULT);
427#endif
428#ifdef ESHUTDOWN
429 CASE(ESHUTDOWN);
430#endif
431#ifdef ESOCKTNOSUPPORT
432 CASE(ESOCKTNOSUPPORT);
433#endif
434#ifdef ESPIPE
435 CASE(ESPIPE);
436#endif
437#ifdef ESRCH
438 CASE(ESRCH);
439#endif
440#ifdef ESRMNT
441 CASE(ESRMNT);
442#endif
443#ifdef ESTALE
444 CASE(ESTALE);
445#endif
446#ifdef ESTRPIPE
447 CASE(ESTRPIPE);
448#endif
449#ifdef ETIME
450 CASE(ETIME);
451#endif
452#ifdef ETIMEDOUT
453 CASE(ETIMEDOUT);
454#endif
455#ifdef ETOOMANYREFS
456 CASE(ETOOMANYREFS);
457#endif
458#ifdef ETOOSMALL
459 CASE(ETOOSMALL);
460#endif
461#ifdef ETXTBSY
462 CASE(ETXTBSY);
463#endif
464#ifdef EUCLEAN
465 CASE(EUCLEAN);
466#endif
467#ifdef EUNATCH
468 CASE(EUNATCH);
469#endif
470#ifdef EUSERS
471 CASE(EUSERS);
472#endif
473#ifdef EXDEV
474 CASE(EXDEV);
475#endif
476#ifdef EXFULL
477 CASE(EXFULL);
478#endif
479 default: perror_msg_and_fail("unknown errno %d", errno);
480 }
481}