/* Unit tests for gioerror * GIO - GLib Input, Output and Streaming Library * * Copyright (C) 2022 Marco Trevisan * * SPDX-License-Identifier: LGPL-2.1-or-later * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, see . * * Author: Marco Trevisan */ #include "config.h" #include #include #ifdef G_OS_WIN32 #include #endif /* We are testing some deprecated APIs here */ #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS #define GLIB_DISABLE_DEPRECATION_WARNINGS #endif static void test_error_from_errno (void) { g_assert_cmpint (g_io_error_from_errno (-1), ==, G_IO_ERROR_FAILED); #ifdef EEXIST g_assert_cmpint (g_io_error_from_errno (EEXIST), ==, G_IO_ERROR_EXISTS); #endif #ifdef EISDIR g_assert_cmpint (g_io_error_from_errno (EISDIR), ==, G_IO_ERROR_IS_DIRECTORY); #endif #ifdef EACCES g_assert_cmpint (g_io_error_from_errno (EACCES), ==, G_IO_ERROR_PERMISSION_DENIED); #endif #ifdef ENAMETOOLONG g_assert_cmpint (g_io_error_from_errno (ENAMETOOLONG), ==, G_IO_ERROR_FILENAME_TOO_LONG); #endif #ifdef ENOENT g_assert_cmpint (g_io_error_from_errno (ENOENT), ==, G_IO_ERROR_NOT_FOUND); #endif #ifdef ENOTDIR g_assert_cmpint (g_io_error_from_errno (ENOTDIR), ==, G_IO_ERROR_NOT_DIRECTORY); #endif #ifdef ENXIO g_assert_cmpint (g_io_error_from_errno (ENXIO), ==, G_IO_ERROR_NOT_REGULAR_FILE); #endif #ifdef EROFS g_assert_cmpint (g_io_error_from_errno (EROFS), ==, G_IO_ERROR_READ_ONLY); #endif #ifdef ELOOP g_assert_cmpint (g_io_error_from_errno (ELOOP), ==, G_IO_ERROR_TOO_MANY_LINKS); #endif #ifdef EMLINK g_assert_cmpint (g_io_error_from_errno (EMLINK), ==, G_IO_ERROR_TOO_MANY_LINKS); #endif #ifdef ENOSPC g_assert_cmpint (g_io_error_from_errno (ENOSPC), ==, G_IO_ERROR_NO_SPACE); #endif #ifdef ENOMEM g_assert_cmpint (g_io_error_from_errno (ENOMEM), ==, G_IO_ERROR_NO_SPACE); #endif #ifdef EINVAL g_assert_cmpint (g_io_error_from_errno (EINVAL), ==, G_IO_ERROR_INVALID_ARGUMENT); #endif #ifdef EPERM g_assert_cmpint (g_io_error_from_errno (EPERM), ==, G_IO_ERROR_PERMISSION_DENIED); #endif #ifdef ECANCELED g_assert_cmpint (g_io_error_from_errno (ECANCELED), ==, G_IO_ERROR_CANCELLED); #endif #ifdef ENOTEMPTY g_assert_cmpint (g_io_error_from_errno (ENOTEMPTY), ==, G_IO_ERROR_NOT_EMPTY); #endif #ifdef ENOTSUP g_assert_cmpint (g_io_error_from_errno (ENOTSUP), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef EOPNOTSUPP g_assert_cmpint (g_io_error_from_errno (EOPNOTSUPP), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef EPROTONOSUPPORT g_assert_cmpint (g_io_error_from_errno (EPROTONOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef ESOCKTNOSUPPORT g_assert_cmpint (g_io_error_from_errno (ESOCKTNOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef EPFNOSUPPORT g_assert_cmpint (g_io_error_from_errno (EPFNOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef EAFNOSUPPORT g_assert_cmpint (g_io_error_from_errno (EAFNOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef ETIMEDOUT g_assert_cmpint (g_io_error_from_errno (ETIMEDOUT), ==, G_IO_ERROR_TIMED_OUT); #endif #ifdef EBUSY g_assert_cmpint (g_io_error_from_errno (EBUSY), ==, G_IO_ERROR_BUSY); #endif #ifdef EWOULDBLOCK g_assert_cmpint (g_io_error_from_errno (EWOULDBLOCK), ==, G_IO_ERROR_WOULD_BLOCK); #endif #ifdef EAGAIN g_assert_cmpint (g_io_error_from_errno (EAGAIN), ==, G_IO_ERROR_WOULD_BLOCK); #endif #ifdef EMFILE g_assert_cmpint (g_io_error_from_errno (EMFILE), ==, G_IO_ERROR_TOO_MANY_OPEN_FILES); #endif #ifdef EADDRINUSE g_assert_cmpint (g_io_error_from_errno (EADDRINUSE), ==, G_IO_ERROR_ADDRESS_IN_USE); #endif #ifdef EHOSTUNREACH g_assert_cmpint (g_io_error_from_errno (EHOSTUNREACH), ==, G_IO_ERROR_HOST_UNREACHABLE); #endif #ifdef ENETUNREACH g_assert_cmpint (g_io_error_from_errno (ENETUNREACH), ==, G_IO_ERROR_NETWORK_UNREACHABLE); #endif #ifdef ECONNREFUSED g_assert_cmpint (g_io_error_from_errno (ECONNREFUSED), ==, G_IO_ERROR_CONNECTION_REFUSED); #endif #ifdef EPIPE g_assert_cmpint (g_io_error_from_errno (EPIPE), ==, G_IO_ERROR_BROKEN_PIPE); #endif #ifdef ECONNRESET g_assert_cmpint (g_io_error_from_errno (ECONNRESET), ==, G_IO_ERROR_CONNECTION_CLOSED); #endif #ifdef ENOTCONN g_assert_cmpint (g_io_error_from_errno (ENOTCONN), ==, G_IO_ERROR_NOT_CONNECTED); #endif #ifdef EMSGSIZE g_assert_cmpint (g_io_error_from_errno (EMSGSIZE), ==, G_IO_ERROR_MESSAGE_TOO_LARGE); #endif #ifdef ENOTSOCK g_assert_cmpint (g_io_error_from_errno (ENOTSOCK), ==, G_IO_ERROR_INVALID_ARGUMENT); #endif #ifdef ESRCH g_assert_cmpint (g_io_error_from_errno (ESRCH), ==, G_IO_ERROR_FAILED); #endif #ifdef EINTR g_assert_cmpint (g_io_error_from_errno (EINTR), ==, G_IO_ERROR_FAILED); #endif #ifdef EIO g_assert_cmpint (g_io_error_from_errno (EIO), ==, G_IO_ERROR_FAILED); #endif #ifdef E2BIG g_assert_cmpint (g_io_error_from_errno (E2BIG), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOEXEC g_assert_cmpint (g_io_error_from_errno (ENOEXEC), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADF g_assert_cmpint (g_io_error_from_errno (EBADF), ==, G_IO_ERROR_FAILED); #endif #ifdef ECHILD g_assert_cmpint (g_io_error_from_errno (ECHILD), ==, G_IO_ERROR_FAILED); #endif #ifdef EFAULT g_assert_cmpint (g_io_error_from_errno (EFAULT), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOTBLK g_assert_cmpint (g_io_error_from_errno (ENOTBLK), ==, G_IO_ERROR_FAILED); #endif #ifdef EXDEV g_assert_cmpint (g_io_error_from_errno (EXDEV), ==, G_IO_ERROR_FAILED); #endif #ifdef ENODEV g_assert_cmpint (g_io_error_from_errno (ENODEV), ==, G_IO_ERROR_NO_SUCH_DEVICE); #endif #ifdef ENFILE g_assert_cmpint (g_io_error_from_errno (ENFILE), ==, G_IO_ERROR_TOO_MANY_OPEN_FILES); #endif #ifdef ENOTTY g_assert_cmpint (g_io_error_from_errno (ENOTTY), ==, G_IO_ERROR_FAILED); #endif #ifdef ETXTBSY g_assert_cmpint (g_io_error_from_errno (ETXTBSY), ==, G_IO_ERROR_BUSY); #endif #ifdef EFBIG g_assert_cmpint (g_io_error_from_errno (EFBIG), ==, G_IO_ERROR_FAILED); #endif #ifdef ESPIPE g_assert_cmpint (g_io_error_from_errno (ESPIPE), ==, G_IO_ERROR_FAILED); #endif #ifdef EDOM g_assert_cmpint (g_io_error_from_errno (EDOM), ==, G_IO_ERROR_FAILED); #endif #ifdef ERANGE g_assert_cmpint (g_io_error_from_errno (ERANGE), ==, G_IO_ERROR_FAILED); #endif #ifdef EDEADLK g_assert_cmpuint (g_io_error_from_errno (EDEADLK), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOLCK g_assert_cmpuint (g_io_error_from_errno (ENOLCK), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOSYS g_assert_cmpuint (g_io_error_from_errno (ENOSYS), ==, G_IO_ERROR_NOT_SUPPORTED); #endif #ifdef ENOMSG g_assert_cmpuint (g_io_error_from_errno (ENOMSG), ==, G_IO_ERROR_INVALID_DATA); #endif #ifdef EIDRM g_assert_cmpuint (g_io_error_from_errno (EIDRM), ==, G_IO_ERROR_FAILED); #endif #ifdef ECHRNG g_assert_cmpuint (g_io_error_from_errno (ECHRNG), ==, G_IO_ERROR_FAILED); #endif #ifdef EL2NSYNC g_assert_cmpuint (g_io_error_from_errno (EL2NSYNC), ==, G_IO_ERROR_FAILED); #endif #ifdef EL3HLT g_assert_cmpuint (g_io_error_from_errno (EL3HLT), ==, G_IO_ERROR_FAILED); #endif #ifdef EL3RST g_assert_cmpuint (g_io_error_from_errno (EL3RST), ==, G_IO_ERROR_FAILED); #endif #ifdef ELNRNG g_assert_cmpuint (g_io_error_from_errno (ELNRNG), ==, G_IO_ERROR_FAILED); #endif #ifdef EUNATCH g_assert_cmpuint (g_io_error_from_errno (EUNATCH), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOCSI g_assert_cmpuint (g_io_error_from_errno (ENOCSI), ==, G_IO_ERROR_FAILED); #endif #ifdef EL2HLT g_assert_cmpuint (g_io_error_from_errno (EL2HLT), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADE g_assert_cmpuint (g_io_error_from_errno (EBADE), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADR g_assert_cmpuint (g_io_error_from_errno (EBADR), ==, G_IO_ERROR_FAILED); #endif #ifdef EXFULL g_assert_cmpuint (g_io_error_from_errno (EXFULL), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOANO g_assert_cmpuint (g_io_error_from_errno (ENOANO), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADRQC g_assert_cmpuint (g_io_error_from_errno (EBADRQC), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADSLT g_assert_cmpuint (g_io_error_from_errno (EBADSLT), ==, G_IO_ERROR_FAILED); #endif #ifdef EDEADLOCK g_assert_cmpuint (g_io_error_from_errno (EDEADLOCK), ==, G_IO_ERROR_FAILED); #endif #ifdef EBFONT g_assert_cmpuint (g_io_error_from_errno (EBFONT), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOSTR g_assert_cmpuint (g_io_error_from_errno (ENOSTR), ==, G_IO_ERROR_FAILED); #endif #ifdef ENODATA g_assert_cmpuint (g_io_error_from_errno (ENODATA), ==, G_IO_ERROR_INVALID_DATA); #endif #ifdef ETIME g_assert_cmpuint (g_io_error_from_errno (ETIME), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOSR g_assert_cmpuint (g_io_error_from_errno (ENOSR), ==, G_IO_ERROR_FAILED); #endif #ifdef ENONET g_assert_cmpuint (g_io_error_from_errno (ENONET), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOPKG g_assert_cmpuint (g_io_error_from_errno (ENOPKG), ==, G_IO_ERROR_FAILED); #endif #ifdef EREMOTE g_assert_cmpuint (g_io_error_from_errno (EREMOTE), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOLINK g_assert_cmpuint (g_io_error_from_errno (ENOLINK), ==, G_IO_ERROR_FAILED); #endif #ifdef EADV g_assert_cmpuint (g_io_error_from_errno (EADV), ==, G_IO_ERROR_FAILED); #endif #ifdef ESRMNT g_assert_cmpuint (g_io_error_from_errno (ESRMNT), ==, G_IO_ERROR_FAILED); #endif #ifdef ECOMM g_assert_cmpuint (g_io_error_from_errno (ECOMM), ==, G_IO_ERROR_FAILED); #endif #ifdef EPROTO g_assert_cmpuint (g_io_error_from_errno (EPROTO), ==, G_IO_ERROR_FAILED); #endif #ifdef EMULTIHOP g_assert_cmpuint (g_io_error_from_errno (EMULTIHOP), ==, G_IO_ERROR_FAILED); #endif #ifdef EDOTDOT g_assert_cmpuint (g_io_error_from_errno (EDOTDOT), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADMSG g_assert_cmpuint (g_io_error_from_errno (EBADMSG), ==, G_IO_ERROR_INVALID_DATA); #endif #ifdef EOVERFLOW g_assert_cmpuint (g_io_error_from_errno (EOVERFLOW), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOTUNIQ g_assert_cmpuint (g_io_error_from_errno (ENOTUNIQ), ==, G_IO_ERROR_FAILED); #endif #ifdef EBADFD g_assert_cmpuint (g_io_error_from_errno (EBADFD), ==, G_IO_ERROR_FAILED); #endif #ifdef EREMCHG g_assert_cmpuint (g_io_error_from_errno (EREMCHG), ==, G_IO_ERROR_FAILED); #endif #ifdef ELIBACC g_assert_cmpuint (g_io_error_from_errno (ELIBACC), ==, G_IO_ERROR_FAILED); #endif #ifdef ELIBBAD g_assert_cmpuint (g_io_error_from_errno (ELIBBAD), ==, G_IO_ERROR_FAILED); #endif #ifdef ELIBSCN g_assert_cmpuint (g_io_error_from_errno (ELIBSCN), ==, G_IO_ERROR_FAILED); #endif #ifdef ELIBMAX g_assert_cmpuint (g_io_error_from_errno (ELIBMAX), ==, G_IO_ERROR_FAILED); #endif #ifdef ELIBEXEC g_assert_cmpuint (g_io_error_from_errno (ELIBEXEC), ==, G_IO_ERROR_FAILED); #endif #ifdef EILSEQ g_assert_cmpuint (g_io_error_from_errno (EILSEQ), ==, G_IO_ERROR_FAILED); #endif #ifdef ERESTART g_assert_cmpuint (g_io_error_from_errno (ERESTART), ==, G_IO_ERROR_FAILED); #endif #ifdef ESTRPIPE g_assert_cmpuint (g_io_error_from_errno (ESTRPIPE), ==, G_IO_ERROR_FAILED); #endif #ifdef EUSERS g_assert_cmpuint (g_io_error_from_errno (EUSERS), ==, G_IO_ERROR_FAILED); #endif #ifdef EDESTADDRREQ g_assert_cmpuint (g_io_error_from_errno (EDESTADDRREQ), ==, G_IO_ERROR_FAILED); #endif #ifdef EPROTOTYPE g_assert_cmpuint (g_io_error_from_errno (EPROTOTYPE), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOPROTOOPT g_assert_cmpuint (g_io_error_from_errno (ENOPROTOOPT), ==, G_IO_ERROR_FAILED); #endif #ifdef EADDRNOTAVAIL g_assert_cmpuint (g_io_error_from_errno (EADDRNOTAVAIL), ==, G_IO_ERROR_FAILED); #endif #ifdef ENETDOWN g_assert_cmpuint (g_io_error_from_errno (ENETDOWN), ==, G_IO_ERROR_NETWORK_UNREACHABLE); #endif #ifdef ECONNABORTED g_assert_cmpuint (g_io_error_from_errno (ECONNABORTED), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOBUFS g_assert_cmpuint (g_io_error_from_errno (ENOBUFS), ==, G_IO_ERROR_FAILED); #endif #ifdef EISCONN g_assert_cmpuint (g_io_error_from_errno (EISCONN), ==, G_IO_ERROR_FAILED); #endif #ifdef ESHUTDOWN g_assert_cmpuint (g_io_error_from_errno (ESHUTDOWN), ==, G_IO_ERROR_FAILED); #endif #ifdef ETOOMANYREFS g_assert_cmpuint (g_io_error_from_errno (ETOOMANYREFS), ==, G_IO_ERROR_FAILED); #endif #ifdef EHOSTDOWN g_assert_cmpuint (g_io_error_from_errno (EHOSTDOWN), ==, G_IO_ERROR_FAILED); #endif #ifdef EALREADY g_assert_cmpuint (g_io_error_from_errno (EALREADY), ==, G_IO_ERROR_FAILED); #endif #ifdef EINPROGRESS g_assert_cmpuint (g_io_error_from_errno (EINPROGRESS), ==, G_IO_ERROR_FAILED); #endif #ifdef ESTALE g_assert_cmpuint (g_io_error_from_errno (ESTALE), ==, G_IO_ERROR_FAILED); #endif #ifdef EUCLEAN g_assert_cmpuint (g_io_error_from_errno (EUCLEAN), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOTNAM g_assert_cmpuint (g_io_error_from_errno (ENOTNAM), ==, G_IO_ERROR_FAILED); #endif #ifdef ENAVAIL g_assert_cmpuint (g_io_error_from_errno (ENAVAIL), ==, G_IO_ERROR_FAILED); #endif #ifdef EISNAM g_assert_cmpuint (g_io_error_from_errno (EISNAM), ==, G_IO_ERROR_FAILED); #endif #ifdef EREMOTEIO g_assert_cmpuint (g_io_error_from_errno (EREMOTEIO), ==, G_IO_ERROR_FAILED); #endif #ifdef EDQUOT g_assert_cmpuint (g_io_error_from_errno (EDQUOT), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOMEDIUM g_assert_cmpuint (g_io_error_from_errno (ENOMEDIUM), ==, G_IO_ERROR_FAILED); #endif #ifdef EMEDIUMTYPE g_assert_cmpuint (g_io_error_from_errno (EMEDIUMTYPE), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOKEY g_assert_cmpuint (g_io_error_from_errno (ENOKEY), ==, G_IO_ERROR_FAILED); #endif #ifdef EKEYEXPIRED g_assert_cmpuint (g_io_error_from_errno (EKEYEXPIRED), ==, G_IO_ERROR_FAILED); #endif #ifdef EKEYREVOKED g_assert_cmpuint (g_io_error_from_errno (EKEYREVOKED), ==, G_IO_ERROR_FAILED); #endif #ifdef EKEYREJECTED g_assert_cmpuint (g_io_error_from_errno (EKEYREJECTED), ==, G_IO_ERROR_FAILED); #endif #ifdef EOWNERDEAD g_assert_cmpuint (g_io_error_from_errno (EOWNERDEAD), ==, G_IO_ERROR_FAILED); #endif #ifdef ENOTRECOVERABLE g_assert_cmpuint (g_io_error_from_errno (ENOTRECOVERABLE), ==, G_IO_ERROR_FAILED); #endif #ifdef ERFKILL g_assert_cmpuint (g_io_error_from_errno (ERFKILL), ==, G_IO_ERROR_FAILED); #endif #ifdef EHWPOISON g_assert_cmpuint (g_io_error_from_errno (EHWPOISON), ==, G_IO_ERROR_FAILED); #endif } static void test_error_from_file_error (void) { g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, "*should not be reached*"); g_assert_cmpuint (g_io_error_from_file_error (-1), ==, G_IO_ERROR_FAILED); g_test_assert_expected_messages (); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_EXIST), ==, G_IO_ERROR_EXISTS); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_ISDIR), ==, G_IO_ERROR_IS_DIRECTORY); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_ACCES), ==, G_IO_ERROR_PERMISSION_DENIED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NAMETOOLONG), ==, G_IO_ERROR_FILENAME_TOO_LONG); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOENT), ==, G_IO_ERROR_NOT_FOUND); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOTDIR), ==, G_IO_ERROR_NOT_DIRECTORY); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NXIO), ==, G_IO_ERROR_NOT_REGULAR_FILE); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NODEV), ==, G_IO_ERROR_NO_SUCH_DEVICE); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_ROFS), ==, G_IO_ERROR_READ_ONLY); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_TXTBSY), ==, G_IO_ERROR_BUSY); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_LOOP), ==, G_IO_ERROR_TOO_MANY_LINKS); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOSPC), ==, G_IO_ERROR_NO_SPACE); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOMEM), ==, G_IO_ERROR_NO_SPACE); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_MFILE), ==, G_IO_ERROR_TOO_MANY_OPEN_FILES); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NFILE), ==, G_IO_ERROR_TOO_MANY_OPEN_FILES); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_INVAL), ==, G_IO_ERROR_INVALID_ARGUMENT); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_PIPE), ==, G_IO_ERROR_BROKEN_PIPE); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_AGAIN), ==, G_IO_ERROR_WOULD_BLOCK); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_PERM), ==, G_IO_ERROR_PERMISSION_DENIED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOSYS), ==, G_IO_ERROR_NOT_SUPPORTED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_BADF), ==, G_IO_ERROR_FAILED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_FAILED), ==, G_IO_ERROR_FAILED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_FAULT), ==, G_IO_ERROR_FAILED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_INTR), ==, G_IO_ERROR_FAILED); g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_IO), ==, G_IO_ERROR_FAILED); } static void test_error_from_win32_error (void) { #ifdef G_OS_WIN32 g_assert_cmpint (g_io_error_from_win32_error (-1), ==, G_IO_ERROR_FAILED); g_assert_cmpint (g_io_error_from_win32_error (WSAEADDRINUSE), ==, G_IO_ERROR_ADDRESS_IN_USE); g_assert_cmpint (g_io_error_from_win32_error (WSAEWOULDBLOCK), ==, G_IO_ERROR_WOULD_BLOCK); g_assert_cmpint (g_io_error_from_win32_error (WSAEACCES), ==, G_IO_ERROR_PERMISSION_DENIED); g_assert_cmpint (g_io_error_from_win32_error (WSA_INVALID_HANDLE), ==, G_IO_ERROR_INVALID_ARGUMENT); g_assert_cmpint (g_io_error_from_win32_error (WSA_INVALID_PARAMETER), ==, G_IO_ERROR_INVALID_ARGUMENT); g_assert_cmpint (g_io_error_from_win32_error (WSAEINVAL), ==, G_IO_ERROR_INVALID_ARGUMENT); g_assert_cmpint (g_io_error_from_win32_error (WSAEBADF), ==, G_IO_ERROR_INVALID_ARGUMENT); g_assert_cmpint (g_io_error_from_win32_error (WSAENOTSOCK), ==, G_IO_ERROR_INVALID_ARGUMENT); g_assert_cmpint (g_io_error_from_win32_error (WSAEPROTONOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); g_assert_cmpint (g_io_error_from_win32_error (WSAECANCELLED), ==, G_IO_ERROR_CANCELLED); g_assert_cmpint (g_io_error_from_win32_error (WSAESOCKTNOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); g_assert_cmpint (g_io_error_from_win32_error (WSAEOPNOTSUPP), ==, G_IO_ERROR_NOT_SUPPORTED); g_assert_cmpint (g_io_error_from_win32_error (WSAEPFNOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); g_assert_cmpint (g_io_error_from_win32_error (WSAEAFNOSUPPORT), ==, G_IO_ERROR_NOT_SUPPORTED); g_assert_cmpint (g_io_error_from_win32_error (WSAECONNRESET), ==, G_IO_ERROR_CONNECTION_CLOSED); g_assert_cmpint (g_io_error_from_win32_error (WSAENETRESET), ==, G_IO_ERROR_CONNECTION_CLOSED); g_assert_cmpint (g_io_error_from_win32_error (WSAESHUTDOWN), ==, G_IO_ERROR_CONNECTION_CLOSED); g_assert_cmpint (g_io_error_from_win32_error (WSAEHOSTUNREACH), ==, G_IO_ERROR_HOST_UNREACHABLE); g_assert_cmpint (g_io_error_from_win32_error (WSAENETUNREACH), ==, G_IO_ERROR_NETWORK_UNREACHABLE); g_assert_cmpint (g_io_error_from_win32_error (WSAECONNREFUSED), ==, G_IO_ERROR_CONNECTION_REFUSED); g_assert_cmpint (g_io_error_from_win32_error (WSAETIMEDOUT), ==, G_IO_ERROR_TIMED_OUT); g_assert_cmpint (g_io_error_from_win32_error (WSAENOTCONN), ==, G_IO_ERROR_NOT_CONNECTED); g_assert_cmpint (g_io_error_from_win32_error (ERROR_PIPE_LISTENING), ==, G_IO_ERROR_NOT_CONNECTED); g_assert_cmpint (g_io_error_from_win32_error (WSAEMSGSIZE), ==, G_IO_ERROR_MESSAGE_TOO_LARGE); #else g_test_skip ("Windows error codes can only be checked on Windows"); #endif /* G_OS_WIN32 */ } int main (int argc, char *argv[]) { g_setenv ("LC_ALL", "C", TRUE); g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL); g_test_add_func ("/error/from-errno", test_error_from_errno); g_test_add_func ("/error/from-file-error", test_error_from_file_error); g_test_add_func ("/error/from-win32-error", test_error_from_win32_error); return g_test_run (); }