Home | History | Annotate | Line # | Download | only in test
      1 /*	$NetBSD: print-winsock-errors.c,v 1.1.1.1 2021/04/07 02:43:15 christos Exp $	*/
      2 #include <winsock2.h>
      3 #include <windows.h>
      4 
      5 #include <stdlib.h>
      6 #include <stdio.h>
      7 
      8 #include "event2/event.h"
      9 #include "event2/util.h"
     10 #include "event2/thread.h"
     11 
     12 #define E(x) printf (#x " -> \"%s\"\n", evutil_socket_error_to_string (x));
     13 
     14 int main (int argc, char **argv)
     15 {
     16   int i, j;
     17   const char *s1, *s2;
     18 
     19 #ifdef EVTHREAD_USE_WINDOWS_THREADS_IMPLEMENTED
     20   evthread_use_windows_threads ();
     21 #endif
     22 
     23   s1 = evutil_socket_error_to_string (WSAEINTR);
     24 
     25   for (i = 0; i < 3; i++) {
     26     printf ("\niteration %d:\n\n", i);
     27     E(WSAEINTR);
     28     E(WSAEACCES);
     29     E(WSAEFAULT);
     30     E(WSAEINVAL);
     31     E(WSAEMFILE);
     32     E(WSAEWOULDBLOCK);
     33     E(WSAEINPROGRESS);
     34     E(WSAEALREADY);
     35     E(WSAENOTSOCK);
     36     E(WSAEDESTADDRREQ);
     37     E(WSAEMSGSIZE);
     38     E(WSAEPROTOTYPE);
     39     E(WSAENOPROTOOPT);
     40     E(WSAEPROTONOSUPPORT);
     41     E(WSAESOCKTNOSUPPORT);
     42     E(WSAEOPNOTSUPP);
     43     E(WSAEPFNOSUPPORT);
     44     E(WSAEAFNOSUPPORT);
     45     E(WSAEADDRINUSE);
     46     E(WSAEADDRNOTAVAIL);
     47     E(WSAENETDOWN);
     48     E(WSAENETUNREACH);
     49     E(WSAENETRESET);
     50     E(WSAECONNABORTED);
     51     E(WSAECONNRESET);
     52     E(WSAENOBUFS);
     53     E(WSAEISCONN);
     54     E(WSAENOTCONN);
     55     E(WSAESHUTDOWN);
     56     E(WSAETIMEDOUT);
     57     E(WSAECONNREFUSED);
     58     E(WSAEHOSTDOWN);
     59     E(WSAEHOSTUNREACH);
     60     E(WSAEPROCLIM);
     61     E(WSASYSNOTREADY);
     62     E(WSAVERNOTSUPPORTED);
     63     E(WSANOTINITIALISED);
     64     E(WSAEDISCON);
     65     E(WSATYPE_NOT_FOUND);
     66     E(WSAHOST_NOT_FOUND);
     67     E(WSATRY_AGAIN);
     68     E(WSANO_RECOVERY);
     69     E(WSANO_DATA);
     70     E(0xdeadbeef); /* test the case where no message is available */
     71 
     72     /* fill up the hash table a bit to make sure it grows properly */
     73     for (j = 0; j < 50; j++) {
     74       int err;
     75       evutil_secure_rng_get_bytes(&err, sizeof(err));
     76       evutil_socket_error_to_string(err);
     77     }
     78   }
     79 
     80   s2 = evutil_socket_error_to_string (WSAEINTR);
     81   if (s1 != s2)
     82     printf ("caching failed!\n");
     83 
     84   libevent_global_shutdown ();
     85 
     86   return EXIT_SUCCESS;
     87 }
     88