Branch data Line data Source code
1 : : /* Unit tests for gioerror
2 : : * GIO - GLib Input, Output and Streaming Library
3 : : *
4 : : * Copyright (C) 2022 Marco Trevisan
5 : : *
6 : : * SPDX-License-Identifier: LGPL-2.1-or-later
7 : : *
8 : : * This library is free software; you can redistribute it and/or
9 : : * modify it under the terms of the GNU Lesser General Public
10 : : * License as published by the Free Software Foundation; either
11 : : * version 2.1 of the License, or (at your option) any later version.
12 : : *
13 : : * This library is distributed in the hope that it will be useful,
14 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 : : * Lesser General Public License for more details.
17 : : *
18 : : * You should have received a copy of the GNU Lesser General
19 : : * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
20 : : *
21 : : * Author: Marco Trevisan <marco.trevisan@canonical.com>
22 : : */
23 : :
24 : : #include "config.h"
25 : : #include <errno.h>
26 : :
27 : : #include <gio/gio.h>
28 : :
29 : : #ifdef G_OS_WIN32
30 : : #include <winsock2.h>
31 : : #endif
32 : :
33 : : /* We are testing some deprecated APIs here */
34 : : #ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
35 : : #define GLIB_DISABLE_DEPRECATION_WARNINGS
36 : : #endif
37 : :
38 : : static void
39 : 1 : test_error_from_errno (void)
40 : : {
41 : 1 : g_assert_cmpint (g_io_error_from_errno (-1), ==, G_IO_ERROR_FAILED);
42 : :
43 : : #ifdef EEXIST
44 : 1 : g_assert_cmpint (g_io_error_from_errno (EEXIST), ==,
45 : : G_IO_ERROR_EXISTS);
46 : : #endif
47 : :
48 : : #ifdef EISDIR
49 : 1 : g_assert_cmpint (g_io_error_from_errno (EISDIR), ==,
50 : : G_IO_ERROR_IS_DIRECTORY);
51 : : #endif
52 : :
53 : : #ifdef EACCES
54 : 1 : g_assert_cmpint (g_io_error_from_errno (EACCES), ==,
55 : : G_IO_ERROR_PERMISSION_DENIED);
56 : : #endif
57 : :
58 : : #ifdef ENAMETOOLONG
59 : 1 : g_assert_cmpint (g_io_error_from_errno (ENAMETOOLONG), ==,
60 : : G_IO_ERROR_FILENAME_TOO_LONG);
61 : : #endif
62 : :
63 : : #ifdef ENOENT
64 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOENT), ==,
65 : : G_IO_ERROR_NOT_FOUND);
66 : : #endif
67 : :
68 : : #ifdef ENOTDIR
69 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTDIR), ==,
70 : : G_IO_ERROR_NOT_DIRECTORY);
71 : : #endif
72 : :
73 : : #ifdef ENXIO
74 : 1 : g_assert_cmpint (g_io_error_from_errno (ENXIO), ==,
75 : : G_IO_ERROR_NOT_REGULAR_FILE);
76 : : #endif
77 : :
78 : : #ifdef EROFS
79 : 1 : g_assert_cmpint (g_io_error_from_errno (EROFS), ==,
80 : : G_IO_ERROR_READ_ONLY);
81 : : #endif
82 : :
83 : : #ifdef ELOOP
84 : 1 : g_assert_cmpint (g_io_error_from_errno (ELOOP), ==,
85 : : G_IO_ERROR_TOO_MANY_LINKS);
86 : : #endif
87 : :
88 : : #ifdef EMLINK
89 : 1 : g_assert_cmpint (g_io_error_from_errno (EMLINK), ==,
90 : : G_IO_ERROR_TOO_MANY_LINKS);
91 : : #endif
92 : :
93 : : #ifdef ENOSPC
94 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOSPC), ==,
95 : : G_IO_ERROR_NO_SPACE);
96 : : #endif
97 : :
98 : : #ifdef ENOMEM
99 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOMEM), ==,
100 : : G_IO_ERROR_NO_SPACE);
101 : : #endif
102 : :
103 : : #ifdef EINVAL
104 : 1 : g_assert_cmpint (g_io_error_from_errno (EINVAL), ==,
105 : : G_IO_ERROR_INVALID_ARGUMENT);
106 : : #endif
107 : :
108 : : #ifdef EPERM
109 : 1 : g_assert_cmpint (g_io_error_from_errno (EPERM), ==,
110 : : G_IO_ERROR_PERMISSION_DENIED);
111 : : #endif
112 : :
113 : : #ifdef ECANCELED
114 : 1 : g_assert_cmpint (g_io_error_from_errno (ECANCELED), ==,
115 : : G_IO_ERROR_CANCELLED);
116 : : #endif
117 : :
118 : : #ifdef ENOTEMPTY
119 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTEMPTY), ==,
120 : : G_IO_ERROR_NOT_EMPTY);
121 : : #endif
122 : :
123 : : #ifdef ENOTSUP
124 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTSUP), ==,
125 : : G_IO_ERROR_NOT_SUPPORTED);
126 : : #endif
127 : :
128 : : #ifdef EOPNOTSUPP
129 : 1 : g_assert_cmpint (g_io_error_from_errno (EOPNOTSUPP), ==,
130 : : G_IO_ERROR_NOT_SUPPORTED);
131 : : #endif
132 : :
133 : : #ifdef EPROTONOSUPPORT
134 : 1 : g_assert_cmpint (g_io_error_from_errno (EPROTONOSUPPORT), ==,
135 : : G_IO_ERROR_NOT_SUPPORTED);
136 : : #endif
137 : :
138 : : #ifdef ESOCKTNOSUPPORT
139 : 1 : g_assert_cmpint (g_io_error_from_errno (ESOCKTNOSUPPORT), ==,
140 : : G_IO_ERROR_NOT_SUPPORTED);
141 : : #endif
142 : :
143 : : #ifdef EPFNOSUPPORT
144 : 1 : g_assert_cmpint (g_io_error_from_errno (EPFNOSUPPORT), ==,
145 : : G_IO_ERROR_NOT_SUPPORTED);
146 : : #endif
147 : :
148 : : #ifdef EAFNOSUPPORT
149 : 1 : g_assert_cmpint (g_io_error_from_errno (EAFNOSUPPORT), ==,
150 : : G_IO_ERROR_NOT_SUPPORTED);
151 : : #endif
152 : :
153 : : #ifdef ETIMEDOUT
154 : 1 : g_assert_cmpint (g_io_error_from_errno (ETIMEDOUT), ==,
155 : : G_IO_ERROR_TIMED_OUT);
156 : : #endif
157 : :
158 : : #ifdef EBUSY
159 : 1 : g_assert_cmpint (g_io_error_from_errno (EBUSY), ==,
160 : : G_IO_ERROR_BUSY);
161 : : #endif
162 : :
163 : : #ifdef EWOULDBLOCK
164 : 1 : g_assert_cmpint (g_io_error_from_errno (EWOULDBLOCK), ==,
165 : : G_IO_ERROR_WOULD_BLOCK);
166 : : #endif
167 : :
168 : : #ifdef EAGAIN
169 : 1 : g_assert_cmpint (g_io_error_from_errno (EAGAIN), ==,
170 : : G_IO_ERROR_WOULD_BLOCK);
171 : : #endif
172 : :
173 : : #ifdef EMFILE
174 : 1 : g_assert_cmpint (g_io_error_from_errno (EMFILE), ==,
175 : : G_IO_ERROR_TOO_MANY_OPEN_FILES);
176 : : #endif
177 : :
178 : : #ifdef EADDRINUSE
179 : 1 : g_assert_cmpint (g_io_error_from_errno (EADDRINUSE), ==,
180 : : G_IO_ERROR_ADDRESS_IN_USE);
181 : : #endif
182 : :
183 : : #ifdef EHOSTUNREACH
184 : 1 : g_assert_cmpint (g_io_error_from_errno (EHOSTUNREACH), ==,
185 : : G_IO_ERROR_HOST_UNREACHABLE);
186 : : #endif
187 : :
188 : : #ifdef ENETUNREACH
189 : 1 : g_assert_cmpint (g_io_error_from_errno (ENETUNREACH), ==,
190 : : G_IO_ERROR_NETWORK_UNREACHABLE);
191 : : #endif
192 : :
193 : : #ifdef ECONNREFUSED
194 : 1 : g_assert_cmpint (g_io_error_from_errno (ECONNREFUSED), ==,
195 : : G_IO_ERROR_CONNECTION_REFUSED);
196 : : #endif
197 : :
198 : : #ifdef EPIPE
199 : 1 : g_assert_cmpint (g_io_error_from_errno (EPIPE), ==,
200 : : G_IO_ERROR_BROKEN_PIPE);
201 : : #endif
202 : :
203 : : #ifdef ECONNRESET
204 : 1 : g_assert_cmpint (g_io_error_from_errno (ECONNRESET), ==,
205 : : G_IO_ERROR_CONNECTION_CLOSED);
206 : : #endif
207 : :
208 : : #ifdef ENOTCONN
209 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTCONN), ==,
210 : : G_IO_ERROR_NOT_CONNECTED);
211 : : #endif
212 : :
213 : : #ifdef EMSGSIZE
214 : 1 : g_assert_cmpint (g_io_error_from_errno (EMSGSIZE), ==,
215 : : G_IO_ERROR_MESSAGE_TOO_LARGE);
216 : : #endif
217 : :
218 : : #ifdef ENOTSOCK
219 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTSOCK), ==,
220 : : G_IO_ERROR_INVALID_ARGUMENT);
221 : : #endif
222 : :
223 : : #ifdef ESRCH
224 : 1 : g_assert_cmpint (g_io_error_from_errno (ESRCH), ==,
225 : : G_IO_ERROR_FAILED);
226 : : #endif
227 : :
228 : : #ifdef EINTR
229 : 1 : g_assert_cmpint (g_io_error_from_errno (EINTR), ==,
230 : : G_IO_ERROR_FAILED);
231 : : #endif
232 : :
233 : : #ifdef EIO
234 : 1 : g_assert_cmpint (g_io_error_from_errno (EIO), ==,
235 : : G_IO_ERROR_FAILED);
236 : : #endif
237 : :
238 : : #ifdef E2BIG
239 : 1 : g_assert_cmpint (g_io_error_from_errno (E2BIG), ==,
240 : : G_IO_ERROR_FAILED);
241 : : #endif
242 : :
243 : : #ifdef ENOEXEC
244 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOEXEC), ==,
245 : : G_IO_ERROR_FAILED);
246 : : #endif
247 : :
248 : : #ifdef EBADF
249 : 1 : g_assert_cmpint (g_io_error_from_errno (EBADF), ==,
250 : : G_IO_ERROR_FAILED);
251 : : #endif
252 : :
253 : : #ifdef ECHILD
254 : 1 : g_assert_cmpint (g_io_error_from_errno (ECHILD), ==,
255 : : G_IO_ERROR_FAILED);
256 : : #endif
257 : :
258 : : #ifdef EFAULT
259 : 1 : g_assert_cmpint (g_io_error_from_errno (EFAULT), ==,
260 : : G_IO_ERROR_FAILED);
261 : : #endif
262 : :
263 : : #ifdef ENOTBLK
264 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTBLK), ==,
265 : : G_IO_ERROR_FAILED);
266 : : #endif
267 : :
268 : : #ifdef EXDEV
269 : 1 : g_assert_cmpint (g_io_error_from_errno (EXDEV), ==,
270 : : G_IO_ERROR_FAILED);
271 : : #endif
272 : :
273 : : #ifdef ENODEV
274 : 1 : g_assert_cmpint (g_io_error_from_errno (ENODEV), ==,
275 : : G_IO_ERROR_NO_SUCH_DEVICE);
276 : : #endif
277 : :
278 : : #ifdef ENFILE
279 : 1 : g_assert_cmpint (g_io_error_from_errno (ENFILE), ==,
280 : : G_IO_ERROR_TOO_MANY_OPEN_FILES);
281 : : #endif
282 : :
283 : : #ifdef ENOTTY
284 : 1 : g_assert_cmpint (g_io_error_from_errno (ENOTTY), ==,
285 : : G_IO_ERROR_FAILED);
286 : : #endif
287 : :
288 : : #ifdef ETXTBSY
289 : 1 : g_assert_cmpint (g_io_error_from_errno (ETXTBSY), ==,
290 : : G_IO_ERROR_BUSY);
291 : : #endif
292 : :
293 : : #ifdef EFBIG
294 : 1 : g_assert_cmpint (g_io_error_from_errno (EFBIG), ==,
295 : : G_IO_ERROR_FAILED);
296 : : #endif
297 : :
298 : : #ifdef ESPIPE
299 : 1 : g_assert_cmpint (g_io_error_from_errno (ESPIPE), ==,
300 : : G_IO_ERROR_FAILED);
301 : : #endif
302 : :
303 : : #ifdef EDOM
304 : 1 : g_assert_cmpint (g_io_error_from_errno (EDOM), ==,
305 : : G_IO_ERROR_FAILED);
306 : : #endif
307 : :
308 : : #ifdef ERANGE
309 : 1 : g_assert_cmpint (g_io_error_from_errno (ERANGE), ==,
310 : : G_IO_ERROR_FAILED);
311 : : #endif
312 : :
313 : : #ifdef EDEADLK
314 : 1 : g_assert_cmpuint (g_io_error_from_errno (EDEADLK), ==,
315 : : G_IO_ERROR_FAILED);
316 : : #endif
317 : :
318 : : #ifdef ENOLCK
319 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOLCK), ==,
320 : : G_IO_ERROR_FAILED);
321 : : #endif
322 : :
323 : : #ifdef ENOSYS
324 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOSYS), ==,
325 : : G_IO_ERROR_NOT_SUPPORTED);
326 : : #endif
327 : :
328 : : #ifdef ENOMSG
329 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOMSG), ==,
330 : : G_IO_ERROR_INVALID_DATA);
331 : : #endif
332 : :
333 : : #ifdef EIDRM
334 : 1 : g_assert_cmpuint (g_io_error_from_errno (EIDRM), ==,
335 : : G_IO_ERROR_FAILED);
336 : : #endif
337 : :
338 : : #ifdef ECHRNG
339 : 1 : g_assert_cmpuint (g_io_error_from_errno (ECHRNG), ==,
340 : : G_IO_ERROR_FAILED);
341 : : #endif
342 : :
343 : : #ifdef EL2NSYNC
344 : 1 : g_assert_cmpuint (g_io_error_from_errno (EL2NSYNC), ==,
345 : : G_IO_ERROR_FAILED);
346 : : #endif
347 : :
348 : : #ifdef EL3HLT
349 : 1 : g_assert_cmpuint (g_io_error_from_errno (EL3HLT), ==,
350 : : G_IO_ERROR_FAILED);
351 : : #endif
352 : :
353 : : #ifdef EL3RST
354 : 1 : g_assert_cmpuint (g_io_error_from_errno (EL3RST), ==,
355 : : G_IO_ERROR_FAILED);
356 : : #endif
357 : :
358 : : #ifdef ELNRNG
359 : 1 : g_assert_cmpuint (g_io_error_from_errno (ELNRNG), ==,
360 : : G_IO_ERROR_FAILED);
361 : : #endif
362 : :
363 : : #ifdef EUNATCH
364 : 1 : g_assert_cmpuint (g_io_error_from_errno (EUNATCH), ==,
365 : : G_IO_ERROR_FAILED);
366 : : #endif
367 : :
368 : : #ifdef ENOCSI
369 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOCSI), ==,
370 : : G_IO_ERROR_FAILED);
371 : : #endif
372 : :
373 : : #ifdef EL2HLT
374 : 1 : g_assert_cmpuint (g_io_error_from_errno (EL2HLT), ==,
375 : : G_IO_ERROR_FAILED);
376 : : #endif
377 : :
378 : : #ifdef EBADE
379 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBADE), ==,
380 : : G_IO_ERROR_FAILED);
381 : : #endif
382 : :
383 : : #ifdef EBADR
384 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBADR), ==,
385 : : G_IO_ERROR_FAILED);
386 : : #endif
387 : :
388 : : #ifdef EXFULL
389 : 1 : g_assert_cmpuint (g_io_error_from_errno (EXFULL), ==,
390 : : G_IO_ERROR_FAILED);
391 : : #endif
392 : :
393 : : #ifdef ENOANO
394 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOANO), ==,
395 : : G_IO_ERROR_FAILED);
396 : : #endif
397 : :
398 : : #ifdef EBADRQC
399 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBADRQC), ==,
400 : : G_IO_ERROR_FAILED);
401 : : #endif
402 : :
403 : : #ifdef EBADSLT
404 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBADSLT), ==,
405 : : G_IO_ERROR_FAILED);
406 : : #endif
407 : :
408 : : #ifdef EDEADLOCK
409 : 1 : g_assert_cmpuint (g_io_error_from_errno (EDEADLOCK), ==,
410 : : G_IO_ERROR_FAILED);
411 : : #endif
412 : :
413 : : #ifdef EBFONT
414 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBFONT), ==,
415 : : G_IO_ERROR_FAILED);
416 : : #endif
417 : :
418 : : #ifdef ENOSTR
419 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOSTR), ==,
420 : : G_IO_ERROR_FAILED);
421 : : #endif
422 : :
423 : : #ifdef ENODATA
424 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENODATA), ==,
425 : : G_IO_ERROR_INVALID_DATA);
426 : : #endif
427 : :
428 : : #ifdef ETIME
429 : 1 : g_assert_cmpuint (g_io_error_from_errno (ETIME), ==,
430 : : G_IO_ERROR_FAILED);
431 : : #endif
432 : :
433 : : #ifdef ENOSR
434 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOSR), ==,
435 : : G_IO_ERROR_FAILED);
436 : : #endif
437 : :
438 : : #ifdef ENONET
439 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENONET), ==,
440 : : G_IO_ERROR_FAILED);
441 : : #endif
442 : :
443 : : #ifdef ENOPKG
444 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOPKG), ==,
445 : : G_IO_ERROR_FAILED);
446 : : #endif
447 : :
448 : : #ifdef EREMOTE
449 : 1 : g_assert_cmpuint (g_io_error_from_errno (EREMOTE), ==,
450 : : G_IO_ERROR_FAILED);
451 : : #endif
452 : :
453 : : #ifdef ENOLINK
454 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOLINK), ==,
455 : : G_IO_ERROR_FAILED);
456 : : #endif
457 : :
458 : : #ifdef EADV
459 : 1 : g_assert_cmpuint (g_io_error_from_errno (EADV), ==,
460 : : G_IO_ERROR_FAILED);
461 : : #endif
462 : :
463 : : #ifdef ESRMNT
464 : 1 : g_assert_cmpuint (g_io_error_from_errno (ESRMNT), ==,
465 : : G_IO_ERROR_FAILED);
466 : : #endif
467 : :
468 : : #ifdef ECOMM
469 : 1 : g_assert_cmpuint (g_io_error_from_errno (ECOMM), ==,
470 : : G_IO_ERROR_FAILED);
471 : : #endif
472 : :
473 : : #ifdef EPROTO
474 : 1 : g_assert_cmpuint (g_io_error_from_errno (EPROTO), ==,
475 : : G_IO_ERROR_FAILED);
476 : : #endif
477 : :
478 : : #ifdef EMULTIHOP
479 : 1 : g_assert_cmpuint (g_io_error_from_errno (EMULTIHOP), ==,
480 : : G_IO_ERROR_FAILED);
481 : : #endif
482 : :
483 : : #ifdef EDOTDOT
484 : 1 : g_assert_cmpuint (g_io_error_from_errno (EDOTDOT), ==,
485 : : G_IO_ERROR_FAILED);
486 : : #endif
487 : :
488 : : #ifdef EBADMSG
489 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBADMSG), ==,
490 : : G_IO_ERROR_INVALID_DATA);
491 : : #endif
492 : :
493 : : #ifdef EOVERFLOW
494 : 1 : g_assert_cmpuint (g_io_error_from_errno (EOVERFLOW), ==,
495 : : G_IO_ERROR_FAILED);
496 : : #endif
497 : :
498 : : #ifdef ENOTUNIQ
499 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOTUNIQ), ==,
500 : : G_IO_ERROR_FAILED);
501 : : #endif
502 : :
503 : : #ifdef EBADFD
504 : 1 : g_assert_cmpuint (g_io_error_from_errno (EBADFD), ==,
505 : : G_IO_ERROR_FAILED);
506 : : #endif
507 : :
508 : : #ifdef EREMCHG
509 : 1 : g_assert_cmpuint (g_io_error_from_errno (EREMCHG), ==,
510 : : G_IO_ERROR_FAILED);
511 : : #endif
512 : :
513 : : #ifdef ELIBACC
514 : 1 : g_assert_cmpuint (g_io_error_from_errno (ELIBACC), ==,
515 : : G_IO_ERROR_FAILED);
516 : : #endif
517 : :
518 : : #ifdef ELIBBAD
519 : 1 : g_assert_cmpuint (g_io_error_from_errno (ELIBBAD), ==,
520 : : G_IO_ERROR_FAILED);
521 : : #endif
522 : :
523 : : #ifdef ELIBSCN
524 : 1 : g_assert_cmpuint (g_io_error_from_errno (ELIBSCN), ==,
525 : : G_IO_ERROR_FAILED);
526 : : #endif
527 : :
528 : : #ifdef ELIBMAX
529 : 1 : g_assert_cmpuint (g_io_error_from_errno (ELIBMAX), ==,
530 : : G_IO_ERROR_FAILED);
531 : : #endif
532 : :
533 : : #ifdef ELIBEXEC
534 : 1 : g_assert_cmpuint (g_io_error_from_errno (ELIBEXEC), ==,
535 : : G_IO_ERROR_FAILED);
536 : : #endif
537 : :
538 : : #ifdef EILSEQ
539 : 1 : g_assert_cmpuint (g_io_error_from_errno (EILSEQ), ==,
540 : : G_IO_ERROR_FAILED);
541 : : #endif
542 : :
543 : : #ifdef ERESTART
544 : 1 : g_assert_cmpuint (g_io_error_from_errno (ERESTART), ==,
545 : : G_IO_ERROR_FAILED);
546 : : #endif
547 : :
548 : : #ifdef ESTRPIPE
549 : 1 : g_assert_cmpuint (g_io_error_from_errno (ESTRPIPE), ==,
550 : : G_IO_ERROR_FAILED);
551 : : #endif
552 : :
553 : : #ifdef EUSERS
554 : 1 : g_assert_cmpuint (g_io_error_from_errno (EUSERS), ==,
555 : : G_IO_ERROR_FAILED);
556 : : #endif
557 : :
558 : : #ifdef EDESTADDRREQ
559 : 1 : g_assert_cmpuint (g_io_error_from_errno (EDESTADDRREQ), ==,
560 : : G_IO_ERROR_DESTINATION_UNSET);
561 : : #endif
562 : :
563 : : #ifdef EPROTOTYPE
564 : 1 : g_assert_cmpuint (g_io_error_from_errno (EPROTOTYPE), ==,
565 : : G_IO_ERROR_FAILED);
566 : : #endif
567 : :
568 : : #ifdef ENOPROTOOPT
569 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOPROTOOPT), ==,
570 : : G_IO_ERROR_FAILED);
571 : : #endif
572 : :
573 : : #ifdef EADDRNOTAVAIL
574 : 1 : g_assert_cmpuint (g_io_error_from_errno (EADDRNOTAVAIL), ==,
575 : : G_IO_ERROR_CONNECTION_REFUSED);
576 : : #endif
577 : :
578 : : #ifdef ENETDOWN
579 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENETDOWN), ==,
580 : : G_IO_ERROR_NETWORK_UNREACHABLE);
581 : : #endif
582 : :
583 : : #ifdef ECONNABORTED
584 : 1 : g_assert_cmpuint (g_io_error_from_errno (ECONNABORTED), ==,
585 : : G_IO_ERROR_FAILED);
586 : : #endif
587 : :
588 : : #ifdef ENOBUFS
589 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOBUFS), ==,
590 : : G_IO_ERROR_FAILED);
591 : : #endif
592 : :
593 : : #ifdef EISCONN
594 : 1 : g_assert_cmpuint (g_io_error_from_errno (EISCONN), ==,
595 : : G_IO_ERROR_FAILED);
596 : : #endif
597 : :
598 : : #ifdef ESHUTDOWN
599 : 1 : g_assert_cmpuint (g_io_error_from_errno (ESHUTDOWN), ==,
600 : : G_IO_ERROR_FAILED);
601 : : #endif
602 : :
603 : : #ifdef ETOOMANYREFS
604 : 1 : g_assert_cmpuint (g_io_error_from_errno (ETOOMANYREFS), ==,
605 : : G_IO_ERROR_FAILED);
606 : : #endif
607 : :
608 : : #ifdef EHOSTDOWN
609 : 1 : g_assert_cmpuint (g_io_error_from_errno (EHOSTDOWN), ==,
610 : : G_IO_ERROR_FAILED);
611 : : #endif
612 : :
613 : : #ifdef EALREADY
614 : 1 : g_assert_cmpuint (g_io_error_from_errno (EALREADY), ==,
615 : : G_IO_ERROR_FAILED);
616 : : #endif
617 : :
618 : : #ifdef EINPROGRESS
619 : 1 : g_assert_cmpuint (g_io_error_from_errno (EINPROGRESS), ==,
620 : : G_IO_ERROR_FAILED);
621 : : #endif
622 : :
623 : : #ifdef ESTALE
624 : 1 : g_assert_cmpuint (g_io_error_from_errno (ESTALE), ==,
625 : : G_IO_ERROR_FAILED);
626 : : #endif
627 : :
628 : : #ifdef EUCLEAN
629 : 1 : g_assert_cmpuint (g_io_error_from_errno (EUCLEAN), ==,
630 : : G_IO_ERROR_FAILED);
631 : : #endif
632 : :
633 : : #ifdef ENOTNAM
634 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOTNAM), ==,
635 : : G_IO_ERROR_FAILED);
636 : : #endif
637 : :
638 : : #ifdef ENAVAIL
639 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENAVAIL), ==,
640 : : G_IO_ERROR_FAILED);
641 : : #endif
642 : :
643 : : #ifdef EISNAM
644 : 1 : g_assert_cmpuint (g_io_error_from_errno (EISNAM), ==,
645 : : G_IO_ERROR_FAILED);
646 : : #endif
647 : :
648 : : #ifdef EREMOTEIO
649 : 1 : g_assert_cmpuint (g_io_error_from_errno (EREMOTEIO), ==,
650 : : G_IO_ERROR_FAILED);
651 : : #endif
652 : :
653 : : #ifdef EDQUOT
654 : 1 : g_assert_cmpuint (g_io_error_from_errno (EDQUOT), ==,
655 : : G_IO_ERROR_FAILED);
656 : : #endif
657 : :
658 : : #ifdef ENOMEDIUM
659 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOMEDIUM), ==,
660 : : G_IO_ERROR_FAILED);
661 : : #endif
662 : :
663 : : #ifdef EMEDIUMTYPE
664 : 1 : g_assert_cmpuint (g_io_error_from_errno (EMEDIUMTYPE), ==,
665 : : G_IO_ERROR_FAILED);
666 : : #endif
667 : :
668 : : #ifdef ENOKEY
669 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOKEY), ==,
670 : : G_IO_ERROR_FAILED);
671 : : #endif
672 : :
673 : : #ifdef EKEYEXPIRED
674 : 1 : g_assert_cmpuint (g_io_error_from_errno (EKEYEXPIRED), ==,
675 : : G_IO_ERROR_FAILED);
676 : : #endif
677 : :
678 : : #ifdef EKEYREVOKED
679 : 1 : g_assert_cmpuint (g_io_error_from_errno (EKEYREVOKED), ==,
680 : : G_IO_ERROR_FAILED);
681 : : #endif
682 : :
683 : : #ifdef EKEYREJECTED
684 : 1 : g_assert_cmpuint (g_io_error_from_errno (EKEYREJECTED), ==,
685 : : G_IO_ERROR_FAILED);
686 : : #endif
687 : :
688 : : #ifdef EOWNERDEAD
689 : 1 : g_assert_cmpuint (g_io_error_from_errno (EOWNERDEAD), ==,
690 : : G_IO_ERROR_FAILED);
691 : : #endif
692 : :
693 : : #ifdef ENOTRECOVERABLE
694 : 1 : g_assert_cmpuint (g_io_error_from_errno (ENOTRECOVERABLE), ==,
695 : : G_IO_ERROR_FAILED);
696 : : #endif
697 : :
698 : : #ifdef ERFKILL
699 : 1 : g_assert_cmpuint (g_io_error_from_errno (ERFKILL), ==,
700 : : G_IO_ERROR_FAILED);
701 : : #endif
702 : :
703 : : #ifdef EHWPOISON
704 : 1 : g_assert_cmpuint (g_io_error_from_errno (EHWPOISON), ==,
705 : : G_IO_ERROR_FAILED);
706 : : #endif
707 : 1 : }
708 : :
709 : : static void
710 : 1 : test_error_from_file_error (void)
711 : : {
712 : 1 : g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
713 : : "*should not be reached*");
714 : 1 : g_assert_cmpuint (g_io_error_from_file_error (-1), ==,
715 : : G_IO_ERROR_FAILED);
716 : 1 : g_test_assert_expected_messages ();
717 : :
718 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_EXIST), ==,
719 : : G_IO_ERROR_EXISTS);
720 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_ISDIR), ==,
721 : : G_IO_ERROR_IS_DIRECTORY);
722 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_ACCES), ==,
723 : : G_IO_ERROR_PERMISSION_DENIED);
724 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NAMETOOLONG), ==,
725 : : G_IO_ERROR_FILENAME_TOO_LONG);
726 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOENT), ==,
727 : : G_IO_ERROR_NOT_FOUND);
728 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOTDIR), ==,
729 : : G_IO_ERROR_NOT_DIRECTORY);
730 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NXIO), ==,
731 : : G_IO_ERROR_NOT_REGULAR_FILE);
732 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NODEV), ==,
733 : : G_IO_ERROR_NO_SUCH_DEVICE);
734 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_ROFS), ==,
735 : : G_IO_ERROR_READ_ONLY);
736 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_TXTBSY), ==,
737 : : G_IO_ERROR_BUSY);
738 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_LOOP), ==,
739 : : G_IO_ERROR_TOO_MANY_LINKS);
740 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOSPC), ==,
741 : : G_IO_ERROR_NO_SPACE);
742 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOMEM), ==,
743 : : G_IO_ERROR_NO_SPACE);
744 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_MFILE), ==,
745 : : G_IO_ERROR_TOO_MANY_OPEN_FILES);
746 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NFILE), ==,
747 : : G_IO_ERROR_TOO_MANY_OPEN_FILES);
748 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_INVAL), ==,
749 : : G_IO_ERROR_INVALID_ARGUMENT);
750 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_PIPE), ==,
751 : : G_IO_ERROR_BROKEN_PIPE);
752 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_AGAIN), ==,
753 : : G_IO_ERROR_WOULD_BLOCK);
754 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_PERM), ==,
755 : : G_IO_ERROR_PERMISSION_DENIED);
756 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_NOSYS), ==,
757 : : G_IO_ERROR_NOT_SUPPORTED);
758 : :
759 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_BADF), ==,
760 : : G_IO_ERROR_FAILED);
761 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_FAILED), ==,
762 : : G_IO_ERROR_FAILED);
763 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_FAULT), ==,
764 : : G_IO_ERROR_FAILED);
765 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_INTR), ==,
766 : : G_IO_ERROR_FAILED);
767 : 1 : g_assert_cmpuint (g_io_error_from_file_error (G_FILE_ERROR_IO), ==,
768 : : G_IO_ERROR_FAILED);
769 : 1 : }
770 : :
771 : : static void
772 : 1 : test_error_from_win32_error (void)
773 : : {
774 : : #ifdef G_OS_WIN32
775 : : g_assert_cmpint (g_io_error_from_win32_error (-1), ==, G_IO_ERROR_FAILED);
776 : :
777 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEADDRINUSE), ==,
778 : : G_IO_ERROR_ADDRESS_IN_USE);
779 : :
780 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEWOULDBLOCK), ==,
781 : : G_IO_ERROR_WOULD_BLOCK);
782 : :
783 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEACCES), ==,
784 : : G_IO_ERROR_PERMISSION_DENIED);
785 : :
786 : : g_assert_cmpint (g_io_error_from_win32_error (WSA_INVALID_HANDLE), ==,
787 : : G_IO_ERROR_INVALID_ARGUMENT);
788 : : g_assert_cmpint (g_io_error_from_win32_error (WSA_INVALID_PARAMETER), ==,
789 : : G_IO_ERROR_INVALID_ARGUMENT);
790 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEINVAL), ==,
791 : : G_IO_ERROR_INVALID_ARGUMENT);
792 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEBADF), ==,
793 : : G_IO_ERROR_INVALID_ARGUMENT);
794 : : g_assert_cmpint (g_io_error_from_win32_error (WSAENOTSOCK), ==,
795 : : G_IO_ERROR_INVALID_ARGUMENT);
796 : :
797 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEPROTONOSUPPORT), ==,
798 : : G_IO_ERROR_NOT_SUPPORTED);
799 : :
800 : : g_assert_cmpint (g_io_error_from_win32_error (WSAECANCELLED), ==,
801 : : G_IO_ERROR_CANCELLED);
802 : :
803 : : g_assert_cmpint (g_io_error_from_win32_error (WSAESOCKTNOSUPPORT), ==,
804 : : G_IO_ERROR_NOT_SUPPORTED);
805 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEOPNOTSUPP), ==,
806 : : G_IO_ERROR_NOT_SUPPORTED);
807 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEPFNOSUPPORT), ==,
808 : : G_IO_ERROR_NOT_SUPPORTED);
809 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEAFNOSUPPORT), ==,
810 : : G_IO_ERROR_NOT_SUPPORTED);
811 : :
812 : : g_assert_cmpint (g_io_error_from_win32_error (WSAECONNRESET), ==,
813 : : G_IO_ERROR_CONNECTION_CLOSED);
814 : : g_assert_cmpint (g_io_error_from_win32_error (WSAENETRESET), ==,
815 : : G_IO_ERROR_CONNECTION_CLOSED);
816 : : g_assert_cmpint (g_io_error_from_win32_error (WSAESHUTDOWN), ==,
817 : : G_IO_ERROR_CONNECTION_CLOSED);
818 : :
819 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEHOSTUNREACH), ==,
820 : : G_IO_ERROR_HOST_UNREACHABLE);
821 : :
822 : : g_assert_cmpint (g_io_error_from_win32_error (WSAENETUNREACH), ==,
823 : : G_IO_ERROR_NETWORK_UNREACHABLE);
824 : :
825 : : g_assert_cmpint (g_io_error_from_win32_error (WSAECONNREFUSED), ==,
826 : : G_IO_ERROR_CONNECTION_REFUSED);
827 : :
828 : : g_assert_cmpint (g_io_error_from_win32_error (WSAETIMEDOUT), ==,
829 : : G_IO_ERROR_TIMED_OUT);
830 : :
831 : : g_assert_cmpint (g_io_error_from_win32_error (WSAENOTCONN), ==,
832 : : G_IO_ERROR_NOT_CONNECTED);
833 : : g_assert_cmpint (g_io_error_from_win32_error (ERROR_PIPE_LISTENING), ==,
834 : : G_IO_ERROR_NOT_CONNECTED);
835 : :
836 : : g_assert_cmpint (g_io_error_from_win32_error (WSAEMSGSIZE), ==,
837 : : G_IO_ERROR_MESSAGE_TOO_LARGE);
838 : : #else
839 : 1 : g_test_skip ("Windows error codes can only be checked on Windows");
840 : : #endif /* G_OS_WIN32 */
841 : 1 : }
842 : :
843 : :
844 : : int
845 : 1 : main (int argc,
846 : : char *argv[])
847 : : {
848 : 1 : g_setenv ("LC_ALL", "C", TRUE);
849 : 1 : g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
850 : :
851 : 1 : g_test_add_func ("/error/from-errno", test_error_from_errno);
852 : 1 : g_test_add_func ("/error/from-file-error", test_error_from_file_error);
853 : 1 : g_test_add_func ("/error/from-win32-error", test_error_from_win32_error);
854 : :
855 : 1 : return g_test_run ();
856 : : }
|