|  | // Copyright 2020 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include <errno.h> | 
|  | #include <fuchsia/posix/llcpp/fidl.h> | 
|  |  | 
|  | // This file asserts that the errno definitions in fuchsia.posix/Errno match the ones in errno.h. | 
|  |  | 
|  | #define COMPARE(e, fidl, name)                   \ | 
|  | static_assert(e == static_cast<int32_t>(fidl), \ | 
|  | name " mismatch between errno.h and fuchsia.posix/Errno") | 
|  |  | 
|  | #define ASSERT_MATCHES(e) COMPARE(e, llcpp::fuchsia::posix::Errno::e##_, #e) | 
|  | #define ASSERT_MATCHES_ALIASED(e) COMPARE(e, llcpp::fuchsia::posix::e##_, #e) | 
|  |  | 
|  | ASSERT_MATCHES(EPERM); | 
|  | ASSERT_MATCHES(ENOENT); | 
|  | ASSERT_MATCHES(ESRCH); | 
|  | ASSERT_MATCHES(EINTR); | 
|  | ASSERT_MATCHES(EIO); | 
|  | ASSERT_MATCHES(ENXIO); | 
|  | ASSERT_MATCHES(E2BIG); | 
|  | ASSERT_MATCHES(ENOEXEC); | 
|  | ASSERT_MATCHES(EBADF); | 
|  | ASSERT_MATCHES(ECHILD); | 
|  | ASSERT_MATCHES(EAGAIN); | 
|  | ASSERT_MATCHES(ENOMEM); | 
|  | ASSERT_MATCHES(EACCES); | 
|  | ASSERT_MATCHES(EFAULT); | 
|  | ASSERT_MATCHES(ENOTBLK); | 
|  | ASSERT_MATCHES(EBUSY); | 
|  | ASSERT_MATCHES(EEXIST); | 
|  | ASSERT_MATCHES(EXDEV); | 
|  | ASSERT_MATCHES(ENODEV); | 
|  | ASSERT_MATCHES(ENOTDIR); | 
|  | ASSERT_MATCHES(EISDIR); | 
|  | ASSERT_MATCHES(EINVAL); | 
|  | ASSERT_MATCHES(ENFILE); | 
|  | ASSERT_MATCHES(EMFILE); | 
|  | ASSERT_MATCHES(ENOTTY); | 
|  | ASSERT_MATCHES(ETXTBSY); | 
|  | ASSERT_MATCHES(EFBIG); | 
|  | ASSERT_MATCHES(ENOSPC); | 
|  | ASSERT_MATCHES(ESPIPE); | 
|  | ASSERT_MATCHES(EROFS); | 
|  | ASSERT_MATCHES(EMLINK); | 
|  | ASSERT_MATCHES(EPIPE); | 
|  | ASSERT_MATCHES(EDOM); | 
|  | ASSERT_MATCHES(ERANGE); | 
|  | ASSERT_MATCHES(EDEADLK); | 
|  | ASSERT_MATCHES(ENAMETOOLONG); | 
|  | ASSERT_MATCHES(ENOLCK); | 
|  | ASSERT_MATCHES(ENOSYS); | 
|  | ASSERT_MATCHES(ENOTEMPTY); | 
|  | ASSERT_MATCHES(ELOOP); | 
|  | ASSERT_MATCHES_ALIASED(EWOULDBLOCK); | 
|  | ASSERT_MATCHES(ENOMSG); | 
|  | ASSERT_MATCHES(EIDRM); | 
|  | ASSERT_MATCHES(ECHRNG); | 
|  | ASSERT_MATCHES(EL2NSYNC); | 
|  | ASSERT_MATCHES(EL3HLT); | 
|  | ASSERT_MATCHES(EL3RST); | 
|  | ASSERT_MATCHES(ELNRNG); | 
|  | ASSERT_MATCHES(EUNATCH); | 
|  | ASSERT_MATCHES(ENOCSI); | 
|  | ASSERT_MATCHES(EL2HLT); | 
|  | ASSERT_MATCHES(EBADE); | 
|  | ASSERT_MATCHES(EBADR); | 
|  | ASSERT_MATCHES(EXFULL); | 
|  | ASSERT_MATCHES(ENOANO); | 
|  | ASSERT_MATCHES(EBADRQC); | 
|  | ASSERT_MATCHES(EBADSLT); | 
|  | ASSERT_MATCHES_ALIASED(EDEADLOCK); | 
|  | ASSERT_MATCHES(EBFONT); | 
|  | ASSERT_MATCHES(ENOSTR); | 
|  | ASSERT_MATCHES(ENODATA); | 
|  | ASSERT_MATCHES(ETIME); | 
|  | ASSERT_MATCHES(ENOSR); | 
|  | ASSERT_MATCHES(ENONET); | 
|  | ASSERT_MATCHES(ENOPKG); | 
|  | ASSERT_MATCHES(EREMOTE); | 
|  | ASSERT_MATCHES(ENOLINK); | 
|  | ASSERT_MATCHES(EADV); | 
|  | ASSERT_MATCHES(ESRMNT); | 
|  | ASSERT_MATCHES(ECOMM); | 
|  | ASSERT_MATCHES(EPROTO); | 
|  | ASSERT_MATCHES(EMULTIHOP); | 
|  | ASSERT_MATCHES(EDOTDOT); | 
|  | ASSERT_MATCHES(EBADMSG); | 
|  | ASSERT_MATCHES(EOVERFLOW); | 
|  | ASSERT_MATCHES(ENOTUNIQ); | 
|  | ASSERT_MATCHES(EBADFD); | 
|  | ASSERT_MATCHES(EREMCHG); | 
|  | ASSERT_MATCHES(ELIBACC); | 
|  | ASSERT_MATCHES(ELIBBAD); | 
|  | ASSERT_MATCHES(ELIBSCN); | 
|  | ASSERT_MATCHES(ELIBMAX); | 
|  | ASSERT_MATCHES(ELIBEXEC); | 
|  | ASSERT_MATCHES(EILSEQ); | 
|  | ASSERT_MATCHES(ERESTART); | 
|  | ASSERT_MATCHES(ESTRPIPE); | 
|  | ASSERT_MATCHES(EUSERS); | 
|  | ASSERT_MATCHES(ENOTSOCK); | 
|  | ASSERT_MATCHES(EDESTADDRREQ); | 
|  | ASSERT_MATCHES(EMSGSIZE); | 
|  | ASSERT_MATCHES(EPROTOTYPE); | 
|  | ASSERT_MATCHES(ENOPROTOOPT); | 
|  | ASSERT_MATCHES(EPROTONOSUPPORT); | 
|  | ASSERT_MATCHES(ESOCKTNOSUPPORT); | 
|  | ASSERT_MATCHES(EOPNOTSUPP); | 
|  | ASSERT_MATCHES_ALIASED(ENOTSUP); | 
|  | ASSERT_MATCHES(EPFNOSUPPORT); | 
|  | ASSERT_MATCHES(EAFNOSUPPORT); | 
|  | ASSERT_MATCHES(EADDRINUSE); | 
|  | ASSERT_MATCHES(EADDRNOTAVAIL); | 
|  | ASSERT_MATCHES(ENETDOWN); | 
|  | ASSERT_MATCHES(ENETUNREACH); | 
|  | ASSERT_MATCHES(ENETRESET); | 
|  | ASSERT_MATCHES(ECONNABORTED); | 
|  | ASSERT_MATCHES(ECONNRESET); | 
|  | ASSERT_MATCHES(ENOBUFS); | 
|  | ASSERT_MATCHES(EISCONN); | 
|  | ASSERT_MATCHES(ENOTCONN); | 
|  | ASSERT_MATCHES(ESHUTDOWN); | 
|  | ASSERT_MATCHES(ETOOMANYREFS); | 
|  | ASSERT_MATCHES(ETIMEDOUT); | 
|  | ASSERT_MATCHES(ECONNREFUSED); | 
|  | ASSERT_MATCHES(EHOSTDOWN); | 
|  | ASSERT_MATCHES(EHOSTUNREACH); | 
|  | ASSERT_MATCHES(EALREADY); | 
|  | ASSERT_MATCHES(EINPROGRESS); | 
|  | ASSERT_MATCHES(ESTALE); | 
|  | ASSERT_MATCHES(EUCLEAN); | 
|  | ASSERT_MATCHES(ENOTNAM); | 
|  | ASSERT_MATCHES(ENAVAIL); | 
|  | ASSERT_MATCHES(EISNAM); | 
|  | ASSERT_MATCHES(EREMOTEIO); | 
|  | ASSERT_MATCHES(EDQUOT); | 
|  | ASSERT_MATCHES(ENOMEDIUM); | 
|  | ASSERT_MATCHES(EMEDIUMTYPE); | 
|  | ASSERT_MATCHES(ECANCELED); | 
|  | ASSERT_MATCHES(ENOKEY); | 
|  | ASSERT_MATCHES(EKEYEXPIRED); | 
|  | ASSERT_MATCHES(EKEYREVOKED); | 
|  | ASSERT_MATCHES(EKEYREJECTED); | 
|  | ASSERT_MATCHES(EOWNERDEAD); | 
|  | ASSERT_MATCHES(ENOTRECOVERABLE); | 
|  | ASSERT_MATCHES(ERFKILL); | 
|  | ASSERT_MATCHES(EHWPOISON); |