Blame gnulib-tests/test-errno.c

Packit 33f14e
/* Test of <errno.h> substitute.
Packit 33f14e
   Copyright (C) 2008-2017 Free Software Foundation, Inc.
Packit 33f14e
Packit 33f14e
   This program is free software: you can redistribute it and/or modify
Packit 33f14e
   it under the terms of the GNU General Public License as published by
Packit 33f14e
   the Free Software Foundation; either version 3 of the License, or
Packit 33f14e
   (at your option) any later version.
Packit 33f14e
Packit 33f14e
   This program is distributed in the hope that it will be useful,
Packit 33f14e
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 33f14e
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 33f14e
   GNU General Public License for more details.
Packit 33f14e
Packit 33f14e
   You should have received a copy of the GNU General Public License
Packit 33f14e
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit 33f14e
Packit 33f14e
/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
Packit 33f14e
Packit 33f14e
#include <config.h>
Packit 33f14e
Packit 33f14e
#include <errno.h>
Packit 33f14e
Packit 33f14e
/* Verify that the POSIX mandated errno values exist and can be used as
Packit 33f14e
   initializers outside of a function.
Packit 33f14e
   The variable names happen to match the Linux/x86 error numbers.  */
Packit 33f14e
int e1 = EPERM;
Packit 33f14e
int e2 = ENOENT;
Packit 33f14e
int e3 = ESRCH;
Packit 33f14e
int e4 = EINTR;
Packit 33f14e
int e5 = EIO;
Packit 33f14e
int e6 = ENXIO;
Packit 33f14e
int e7 = E2BIG;
Packit 33f14e
int e8 = ENOEXEC;
Packit 33f14e
int e9 = EBADF;
Packit 33f14e
int e10 = ECHILD;
Packit 33f14e
int e11 = EAGAIN;
Packit 33f14e
int e11a = EWOULDBLOCK;
Packit 33f14e
int e12 = ENOMEM;
Packit 33f14e
int e13 = EACCES;
Packit 33f14e
int e14 = EFAULT;
Packit 33f14e
int e16 = EBUSY;
Packit 33f14e
int e17 = EEXIST;
Packit 33f14e
int e18 = EXDEV;
Packit 33f14e
int e19 = ENODEV;
Packit 33f14e
int e20 = ENOTDIR;
Packit 33f14e
int e21 = EISDIR;
Packit 33f14e
int e22 = EINVAL;
Packit 33f14e
int e23 = ENFILE;
Packit 33f14e
int e24 = EMFILE;
Packit 33f14e
int e25 = ENOTTY;
Packit 33f14e
int e26 = ETXTBSY;
Packit 33f14e
int e27 = EFBIG;
Packit 33f14e
int e28 = ENOSPC;
Packit 33f14e
int e29 = ESPIPE;
Packit 33f14e
int e30 = EROFS;
Packit 33f14e
int e31 = EMLINK;
Packit 33f14e
int e32 = EPIPE;
Packit 33f14e
int e33 = EDOM;
Packit 33f14e
int e34 = ERANGE;
Packit 33f14e
int e35 = EDEADLK;
Packit 33f14e
int e36 = ENAMETOOLONG;
Packit 33f14e
int e37 = ENOLCK;
Packit 33f14e
int e38 = ENOSYS;
Packit 33f14e
int e39 = ENOTEMPTY;
Packit 33f14e
int e40 = ELOOP;
Packit 33f14e
int e42 = ENOMSG;
Packit 33f14e
int e43 = EIDRM;
Packit 33f14e
int e67 = ENOLINK;
Packit 33f14e
int e71 = EPROTO;
Packit 33f14e
int e72 = EMULTIHOP;
Packit 33f14e
int e74 = EBADMSG;
Packit 33f14e
int e75 = EOVERFLOW;
Packit 33f14e
int e84 = EILSEQ;
Packit 33f14e
int e88 = ENOTSOCK;
Packit 33f14e
int e89 = EDESTADDRREQ;
Packit 33f14e
int e90 = EMSGSIZE;
Packit 33f14e
int e91 = EPROTOTYPE;
Packit 33f14e
int e92 = ENOPROTOOPT;
Packit 33f14e
int e93 = EPROTONOSUPPORT;
Packit 33f14e
int e95 = EOPNOTSUPP;
Packit 33f14e
int e95a = ENOTSUP;
Packit 33f14e
int e97 = EAFNOSUPPORT;
Packit 33f14e
int e98 = EADDRINUSE;
Packit 33f14e
int e99 = EADDRNOTAVAIL;
Packit 33f14e
int e100 = ENETDOWN;
Packit 33f14e
int e101 = ENETUNREACH;
Packit 33f14e
int e102 = ENETRESET;
Packit 33f14e
int e103 = ECONNABORTED;
Packit 33f14e
int e104 = ECONNRESET;
Packit 33f14e
int e105 = ENOBUFS;
Packit 33f14e
int e106 = EISCONN;
Packit 33f14e
int e107 = ENOTCONN;
Packit 33f14e
int e110 = ETIMEDOUT;
Packit 33f14e
int e111 = ECONNREFUSED;
Packit 33f14e
int e113 = EHOSTUNREACH;
Packit 33f14e
int e114 = EALREADY;
Packit 33f14e
int e115 = EINPROGRESS;
Packit 33f14e
int e116 = ESTALE;
Packit 33f14e
int e122 = EDQUOT;
Packit 33f14e
int e125 = ECANCELED;
Packit 33f14e
int e130 = EOWNERDEAD;
Packit 33f14e
int e131 = ENOTRECOVERABLE;
Packit 33f14e
Packit 33f14e
/* Don't verify that these errno values are all different, except for possibly
Packit 33f14e
   EWOULDBLOCK == EAGAIN.  Even Linux/x86 does not pass this check: it has
Packit 33f14e
   ENOTSUP == EOPNOTSUPP.  */
Packit 33f14e
Packit 33f14e
int
Packit 33f14e
main ()
Packit 33f14e
{
Packit 33f14e
  /* Verify that errno can be assigned.  */
Packit 33f14e
  errno = EOVERFLOW;
Packit 33f14e
Packit 33f14e
  /* snprintf() callers want to distinguish EINVAL and EOVERFLOW.  */
Packit 33f14e
  if (errno == EINVAL)
Packit 33f14e
    return 1;
Packit 33f14e
Packit 33f14e
  return 0;
Packit 33f14e
}