summaryrefslogtreecommitdiff
path: root/tests/tst-errno-map.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tst-errno-map.c')
-rw-r--r--tests/tst-errno-map.c439
1 files changed, 439 insertions, 0 deletions
diff --git a/tests/tst-errno-map.c b/tests/tst-errno-map.c
new file mode 100644
index 0000000..c8ab42d
--- /dev/null
+++ b/tests/tst-errno-map.c
@@ -0,0 +1,439 @@
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+
+#include <libmcpu.h>
+#include "../cpu/cpu-sysdeps.h"
+
+
+#define CHECK_HOST_ERRNO(host_name, mcpu_name) \
+ do { \
+ int mapped = __cpu_errno_from_host( (host_name) ); \
+ if( mapped != (__MCPU_ ## mcpu_name) ) \
+ { \
+ fprintf( stderr, #host_name " mapping mismatch: got=%d expected=%d\n", \
+ mapped, (int)(__MCPU_ ## mcpu_name) ); \
+ return( 1 ); \
+ } \
+ } while( 0 )
+
+
+int
+main( void )
+{
+ if( __cpu_errno_from_host( 0 ) != 0 ) return( 1 );
+ if( __cpu_errno_from_host( -1 ) != __MCPU_EUNKNOWN ) return( 1 );
+ if( __cpu_errno_from_host( 0x7fffffff ) != __MCPU_EUNKNOWN ) return( 1 );
+
+#ifdef EPERM
+ CHECK_HOST_ERRNO( EPERM, EPERM );
+#endif
+#ifdef ENOENT
+ CHECK_HOST_ERRNO( ENOENT, ENOENT );
+#endif
+#ifdef ESRCH
+ CHECK_HOST_ERRNO( ESRCH, ESRCH );
+#endif
+#ifdef EINTR
+ CHECK_HOST_ERRNO( EINTR, EINTR );
+#endif
+#ifdef EIO
+ CHECK_HOST_ERRNO( EIO, EIO );
+#endif
+#ifdef ENXIO
+ CHECK_HOST_ERRNO( ENXIO, ENXIO );
+#endif
+#ifdef E2BIG
+ CHECK_HOST_ERRNO( E2BIG, E2BIG );
+#endif
+#ifdef ENOEXEC
+ CHECK_HOST_ERRNO( ENOEXEC, ENOEXEC );
+#endif
+#ifdef EBADF
+ CHECK_HOST_ERRNO( EBADF, EBADF );
+#endif
+#ifdef ECHILD
+ CHECK_HOST_ERRNO( ECHILD, ECHILD );
+#endif
+#ifdef EAGAIN
+ CHECK_HOST_ERRNO( EAGAIN, EAGAIN );
+#endif
+#ifdef ENOMEM
+ CHECK_HOST_ERRNO( ENOMEM, ENOMEM );
+#endif
+#ifdef EACCES
+ CHECK_HOST_ERRNO( EACCES, EACCES );
+#endif
+#ifdef EFAULT
+ CHECK_HOST_ERRNO( EFAULT, EFAULT );
+#endif
+#ifdef ENOTBLK
+ CHECK_HOST_ERRNO( ENOTBLK, ENOTBLK );
+#endif
+#ifdef EBUSY
+ CHECK_HOST_ERRNO( EBUSY, EBUSY );
+#endif
+#ifdef EEXIST
+ CHECK_HOST_ERRNO( EEXIST, EEXIST );
+#endif
+#ifdef EXDEV
+ CHECK_HOST_ERRNO( EXDEV, EXDEV );
+#endif
+#ifdef ENODEV
+ CHECK_HOST_ERRNO( ENODEV, ENODEV );
+#endif
+#ifdef ENOTDIR
+ CHECK_HOST_ERRNO( ENOTDIR, ENOTDIR );
+#endif
+#ifdef EISDIR
+ CHECK_HOST_ERRNO( EISDIR, EISDIR );
+#endif
+#ifdef EINVAL
+ CHECK_HOST_ERRNO( EINVAL, EINVAL );
+#endif
+#ifdef ENFILE
+ CHECK_HOST_ERRNO( ENFILE, ENFILE );
+#endif
+#ifdef EMFILE
+ CHECK_HOST_ERRNO( EMFILE, EMFILE );
+#endif
+#ifdef ENOTTY
+ CHECK_HOST_ERRNO( ENOTTY, ENOTTY );
+#endif
+#ifdef ETXTBSY
+ CHECK_HOST_ERRNO( ETXTBSY, ETXTBSY );
+#endif
+#ifdef EFBIG
+ CHECK_HOST_ERRNO( EFBIG, EFBIG );
+#endif
+#ifdef ENOSPC
+ CHECK_HOST_ERRNO( ENOSPC, ENOSPC );
+#endif
+#ifdef ESPIPE
+ CHECK_HOST_ERRNO( ESPIPE, ESPIPE );
+#endif
+#ifdef EROFS
+ CHECK_HOST_ERRNO( EROFS, EROFS );
+#endif
+#ifdef EMLINK
+ CHECK_HOST_ERRNO( EMLINK, EMLINK );
+#endif
+#ifdef EPIPE
+ CHECK_HOST_ERRNO( EPIPE, EPIPE );
+#endif
+#ifdef EDOM
+ CHECK_HOST_ERRNO( EDOM, EDOM );
+#endif
+#ifdef ERANGE
+ CHECK_HOST_ERRNO( ERANGE, ERANGE );
+#endif
+#ifdef EDEADLK
+ CHECK_HOST_ERRNO( EDEADLK, EDEADLK );
+#endif
+#ifdef ENAMETOOLONG
+ CHECK_HOST_ERRNO( ENAMETOOLONG, ENAMETOOLONG );
+#endif
+#ifdef ENOLCK
+ CHECK_HOST_ERRNO( ENOLCK, ENOLCK );
+#endif
+#ifdef ENOSYS
+ CHECK_HOST_ERRNO( ENOSYS, ENOSYS );
+#endif
+#ifdef ENOTEMPTY
+ CHECK_HOST_ERRNO( ENOTEMPTY, ENOTEMPTY );
+#endif
+#ifdef ELOOP
+ CHECK_HOST_ERRNO( ELOOP, ELOOP );
+#endif
+#ifdef ENOMSG
+ CHECK_HOST_ERRNO( ENOMSG, ENOMSG );
+#endif
+#ifdef EIDRM
+ CHECK_HOST_ERRNO( EIDRM, EIDRM );
+#endif
+#ifdef ECHRNG
+ CHECK_HOST_ERRNO( ECHRNG, ECHRNG );
+#endif
+#ifdef EL2NSYNC
+ CHECK_HOST_ERRNO( EL2NSYNC, EL2NSYNC );
+#endif
+#ifdef EL3HLT
+ CHECK_HOST_ERRNO( EL3HLT, EL3HLT );
+#endif
+#ifdef EL3RST
+ CHECK_HOST_ERRNO( EL3RST, EL3RST );
+#endif
+#ifdef ELNRNG
+ CHECK_HOST_ERRNO( ELNRNG, ELNRNG );
+#endif
+#ifdef EUNATCH
+ CHECK_HOST_ERRNO( EUNATCH, EUNATCH );
+#endif
+#ifdef ENOCSI
+ CHECK_HOST_ERRNO( ENOCSI, ENOCSI );
+#endif
+#ifdef EL2HLT
+ CHECK_HOST_ERRNO( EL2HLT, EL2HLT );
+#endif
+#ifdef EBADE
+ CHECK_HOST_ERRNO( EBADE, EBADE );
+#endif
+#ifdef EBADR
+ CHECK_HOST_ERRNO( EBADR, EBADR );
+#endif
+#ifdef EXFULL
+ CHECK_HOST_ERRNO( EXFULL, EXFULL );
+#endif
+#ifdef ENOANO
+ CHECK_HOST_ERRNO( ENOANO, ENOANO );
+#endif
+#ifdef EBADRQC
+ CHECK_HOST_ERRNO( EBADRQC, EBADRQC );
+#endif
+#ifdef EBADSLT
+ CHECK_HOST_ERRNO( EBADSLT, EBADSLT );
+#endif
+#ifdef EBFONT
+ CHECK_HOST_ERRNO( EBFONT, EBFONT );
+#endif
+#ifdef ENOSTR
+ CHECK_HOST_ERRNO( ENOSTR, ENOSTR );
+#endif
+#ifdef ENODATA
+ CHECK_HOST_ERRNO( ENODATA, ENODATA );
+#endif
+#ifdef ETIME
+ CHECK_HOST_ERRNO( ETIME, ETIME );
+#endif
+#ifdef ENOSR
+ CHECK_HOST_ERRNO( ENOSR, ENOSR );
+#endif
+#ifdef ENONET
+ CHECK_HOST_ERRNO( ENONET, ENONET );
+#endif
+#ifdef ENOPKG
+ CHECK_HOST_ERRNO( ENOPKG, ENOPKG );
+#endif
+#ifdef EREMOTE
+ CHECK_HOST_ERRNO( EREMOTE, EREMOTE );
+#endif
+#ifdef ENOLINK
+ CHECK_HOST_ERRNO( ENOLINK, ENOLINK );
+#endif
+#ifdef EADV
+ CHECK_HOST_ERRNO( EADV, EADV );
+#endif
+#ifdef ESRMNT
+ CHECK_HOST_ERRNO( ESRMNT, ESRMNT );
+#endif
+#ifdef ECOMM
+ CHECK_HOST_ERRNO( ECOMM, ECOMM );
+#endif
+#ifdef EPROTO
+ CHECK_HOST_ERRNO( EPROTO, EPROTO );
+#endif
+#ifdef EMULTIHOP
+ CHECK_HOST_ERRNO( EMULTIHOP, EMULTIHOP );
+#endif
+#ifdef EDOTDOT
+ CHECK_HOST_ERRNO( EDOTDOT, EDOTDOT );
+#endif
+#ifdef EBADMSG
+ CHECK_HOST_ERRNO( EBADMSG, EBADMSG );
+#endif
+#ifdef EOVERFLOW
+ CHECK_HOST_ERRNO( EOVERFLOW, EOVERFLOW );
+#endif
+#ifdef ENOTUNIQ
+ CHECK_HOST_ERRNO( ENOTUNIQ, ENOTUNIQ );
+#endif
+#ifdef EBADFD
+ CHECK_HOST_ERRNO( EBADFD, EBADFD );
+#endif
+#ifdef EREMCHG
+ CHECK_HOST_ERRNO( EREMCHG, EREMCHG );
+#endif
+#ifdef ELIBACC
+ CHECK_HOST_ERRNO( ELIBACC, ELIBACC );
+#endif
+#ifdef ELIBBAD
+ CHECK_HOST_ERRNO( ELIBBAD, ELIBBAD );
+#endif
+#ifdef ELIBSCN
+ CHECK_HOST_ERRNO( ELIBSCN, ELIBSCN );
+#endif
+#ifdef ELIBMAX
+ CHECK_HOST_ERRNO( ELIBMAX, ELIBMAX );
+#endif
+#ifdef ELIBEXEC
+ CHECK_HOST_ERRNO( ELIBEXEC, ELIBEXEC );
+#endif
+#ifdef EILSEQ
+ CHECK_HOST_ERRNO( EILSEQ, EILSEQ );
+#endif
+#ifdef ERESTART
+ CHECK_HOST_ERRNO( ERESTART, ERESTART );
+#endif
+#ifdef ESTRPIPE
+ CHECK_HOST_ERRNO( ESTRPIPE, ESTRPIPE );
+#endif
+#ifdef EUSERS
+ CHECK_HOST_ERRNO( EUSERS, EUSERS );
+#endif
+#ifdef ENOTSOCK
+ CHECK_HOST_ERRNO( ENOTSOCK, ENOTSOCK );
+#endif
+#ifdef EDESTADDRREQ
+ CHECK_HOST_ERRNO( EDESTADDRREQ, EDESTADDRREQ );
+#endif
+#ifdef EMSGSIZE
+ CHECK_HOST_ERRNO( EMSGSIZE, EMSGSIZE );
+#endif
+#ifdef EPROTOTYPE
+ CHECK_HOST_ERRNO( EPROTOTYPE, EPROTOTYPE );
+#endif
+#ifdef ENOPROTOOPT
+ CHECK_HOST_ERRNO( ENOPROTOOPT, ENOPROTOOPT );
+#endif
+#ifdef EPROTONOSUPPORT
+ CHECK_HOST_ERRNO( EPROTONOSUPPORT, EPROTONOSUPPORT );
+#endif
+#ifdef ESOCKTNOSUPPORT
+ CHECK_HOST_ERRNO( ESOCKTNOSUPPORT, ESOCKTNOSUPPORT );
+#endif
+#ifdef EOPNOTSUPP
+ CHECK_HOST_ERRNO( EOPNOTSUPP, EOPNOTSUPP );
+#endif
+#ifdef EPFNOSUPPORT
+ CHECK_HOST_ERRNO( EPFNOSUPPORT, EPFNOSUPPORT );
+#endif
+#ifdef EAFNOSUPPORT
+ CHECK_HOST_ERRNO( EAFNOSUPPORT, EAFNOSUPPORT );
+#endif
+#ifdef EADDRINUSE
+ CHECK_HOST_ERRNO( EADDRINUSE, EADDRINUSE );
+#endif
+#ifdef EADDRNOTAVAIL
+ CHECK_HOST_ERRNO( EADDRNOTAVAIL, EADDRNOTAVAIL );
+#endif
+#ifdef ENETDOWN
+ CHECK_HOST_ERRNO( ENETDOWN, ENETDOWN );
+#endif
+#ifdef ENETUNREACH
+ CHECK_HOST_ERRNO( ENETUNREACH, ENETUNREACH );
+#endif
+#ifdef ENETRESET
+ CHECK_HOST_ERRNO( ENETRESET, ENETRESET );
+#endif
+#ifdef ECONNABORTED
+ CHECK_HOST_ERRNO( ECONNABORTED, ECONNABORTED );
+#endif
+#ifdef ECONNRESET
+ CHECK_HOST_ERRNO( ECONNRESET, ECONNRESET );
+#endif
+#ifdef ENOBUFS
+ CHECK_HOST_ERRNO( ENOBUFS, ENOBUFS );
+#endif
+#ifdef EISCONN
+ CHECK_HOST_ERRNO( EISCONN, EISCONN );
+#endif
+#ifdef ENOTCONN
+ CHECK_HOST_ERRNO( ENOTCONN, ENOTCONN );
+#endif
+#ifdef ESHUTDOWN
+ CHECK_HOST_ERRNO( ESHUTDOWN, ESHUTDOWN );
+#endif
+#ifdef ETOOMANYREFS
+ CHECK_HOST_ERRNO( ETOOMANYREFS, ETOOMANYREFS );
+#endif
+#ifdef ETIMEDOUT
+ CHECK_HOST_ERRNO( ETIMEDOUT, ETIMEDOUT );
+#endif
+#ifdef ECONNREFUSED
+ CHECK_HOST_ERRNO( ECONNREFUSED, ECONNREFUSED );
+#endif
+#ifdef EHOSTDOWN
+ CHECK_HOST_ERRNO( EHOSTDOWN, EHOSTDOWN );
+#endif
+#ifdef EHOSTUNREACH
+ CHECK_HOST_ERRNO( EHOSTUNREACH, EHOSTUNREACH );
+#endif
+#ifdef EALREADY
+ CHECK_HOST_ERRNO( EALREADY, EALREADY );
+#endif
+#ifdef EINPROGRESS
+ CHECK_HOST_ERRNO( EINPROGRESS, EINPROGRESS );
+#endif
+#ifdef ESTALE
+ CHECK_HOST_ERRNO( ESTALE, ESTALE );
+#endif
+#ifdef EUCLEAN
+ CHECK_HOST_ERRNO( EUCLEAN, EUCLEAN );
+#endif
+#ifdef ENOTNAM
+ CHECK_HOST_ERRNO( ENOTNAM, ENOTNAM );
+#endif
+#ifdef ENAVAIL
+ CHECK_HOST_ERRNO( ENAVAIL, ENAVAIL );
+#endif
+#ifdef EISNAM
+ CHECK_HOST_ERRNO( EISNAM, EISNAM );
+#endif
+#ifdef EREMOTEIO
+ CHECK_HOST_ERRNO( EREMOTEIO, EREMOTEIO );
+#endif
+#ifdef EDQUOT
+ CHECK_HOST_ERRNO( EDQUOT, EDQUOT );
+#endif
+#ifdef ENOMEDIUM
+ CHECK_HOST_ERRNO( ENOMEDIUM, ENOMEDIUM );
+#endif
+#ifdef EMEDIUMTYPE
+ CHECK_HOST_ERRNO( EMEDIUMTYPE, EMEDIUMTYPE );
+#endif
+#ifdef ECANCELED
+ CHECK_HOST_ERRNO( ECANCELED, ECANCELED );
+#endif
+#ifdef ENOKEY
+ CHECK_HOST_ERRNO( ENOKEY, ENOKEY );
+#endif
+#ifdef EKEYEXPIRED
+ CHECK_HOST_ERRNO( EKEYEXPIRED, EKEYEXPIRED );
+#endif
+#ifdef EKEYREVOKED
+ CHECK_HOST_ERRNO( EKEYREVOKED, EKEYREVOKED );
+#endif
+#ifdef EKEYREJECTED
+ CHECK_HOST_ERRNO( EKEYREJECTED, EKEYREJECTED );
+#endif
+#ifdef EOWNERDEAD
+ CHECK_HOST_ERRNO( EOWNERDEAD, EOWNERDEAD );
+#endif
+#ifdef ENOTRECOVERABLE
+ CHECK_HOST_ERRNO( ENOTRECOVERABLE, ENOTRECOVERABLE );
+#endif
+#ifdef ERFKILL
+ CHECK_HOST_ERRNO( ERFKILL, ERFKILL );
+#endif
+#ifdef EHWPOISON
+ CHECK_HOST_ERRNO( EHWPOISON, EHWPOISON );
+#endif
+#ifdef EFTYPE
+ CHECK_HOST_ERRNO( EFTYPE, EFTYPE );
+#endif
+#ifdef EWOULDBLOCK
+ CHECK_HOST_ERRNO( EWOULDBLOCK, EWOULDBLOCK );
+#endif
+#ifdef EDEADLOCK
+ CHECK_HOST_ERRNO( EDEADLOCK, EDEADLOCK );
+#endif
+#ifdef ENOTSUP
+ CHECK_HOST_ERRNO( ENOTSUP, ENOTSUP );
+#endif
+
+ return( 0 );
+
+} /* End of main() */