Blame gl/tests/test-errno.c

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