bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] testsuite for poll(2)


From: Paolo Bonzini
Subject: Re: [PATCH] testsuite for poll(2)
Date: Fri, 12 Sep 2008 18:00:21 +0200
User-agent: Thunderbird 2.0.0.16 (Macintosh/20080707)

Here is the final patch I pushed for Windows compatibility of tests.  It
does not test much because the socket syscalls are not compatible
enough, but it compiles at least (using the Debian mingw32 and wine
packages).

Paolo
commit b03b6bfb8daa20dceff4593229f0df2c68c37e6e
Author: Paolo Bonzini <address@hidden>
Date:   Fri Sep 12 16:12:44 2008 +0200

    port poll tests to Windows
    
    2008-09-12  Paolo Bonzini  <address@hidden>
    
        * lib/sys_socket.in.h (EINPROGRESS): Define for Winsock case.
        * modules/poll-tests: Add inet_pton, stdbool, sockets.
        * tests/test-poll.c: Use them.  Use _pipe on Windows.

diff --git a/lib/sys_socket.in.h b/lib/sys_socket.in.h
index d237e9c..7c8ad30 100644
--- a/lib/sys_socket.in.h
+++ b/lib/sys_socket.in.h
@@ -95,6 +95,7 @@
 # endif
 
 # if defined _WIN32 || defined __WIN32__
+#  define EINPROGRESS            WSAEINPROGRESS
 #  define ENOTSOCK                WSAENOTSOCK
 #  define EADDRINUSE              WSAEADDRINUSE
 #  define ENETRESET               WSAENETRESET
diff --git a/modules/poll-tests b/modules/poll-tests
index 1484aaa..7c44a48 100644
--- a/modules/poll-tests
+++ b/modules/poll-tests
@@ -2,10 +2,13 @@ Files:
 tests/test-poll.c
 
 Depends-on:
+stdbool
 sys_socket
 netinet_in
 arpa_inet
 extensions
+inet_pton
+sockets
 
 configure.ac:
 AC_CHECK_HEADERS_ONCE([io.h unistd.h sys/wait.h])
diff --git a/tests/test-poll.c b/tests/test-poll.c
index cacb3a2..0dbcb54 100644
--- a/tests/test-poll.c
+++ b/tests/test-poll.c
@@ -27,10 +27,13 @@
 #include <poll.h>
 #include <fcntl.h>
 #include <stdlib.h>
+#include <stdbool.h>
 #include <errno.h>
+#include "sockets.h"
 
 #ifdef HAVE_IO_H
 #include <io.h>
+#define pipe(x) _pipe(x, 256, O_BINARY)
 #endif
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
@@ -39,8 +42,6 @@
 #include <sys/wait.h>
 #endif
 
-enum { FALSE, TRUE };
-
 #ifndef SO_REUSEPORT
 #define SO_REUSEPORT    SO_REUSEADDR
 #endif
@@ -87,7 +88,7 @@ open_server_socket ()
 
   memset (&ia, 0, sizeof (ia));
   ia.sin_family = AF_INET;
-  inet_aton ("127.0.0.1", &ia.sin_addr);
+  inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
   ia.sin_port = htons (TEST_PORT);
   if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0)
     {
@@ -117,14 +118,14 @@ connect_to_socket (int blocking)
 
   memset (&ia, 0, sizeof (ia));
   ia.sin_family = AF_INET;
-  inet_aton ("127.0.0.1", &ia.sin_addr);
+  inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
   ia.sin_port = htons (TEST_PORT);
 
   if (!blocking)
     {
 #ifdef __MSVCRT__
       unsigned long iMode = 1;
-      ioctl (s, FIONBIO, &iMode);
+      ioctlsocket (s, FIONBIO, (void *) &iMode);
  
 #elif defined F_GETFL
       int oldflags = fcntl (s, F_GETFL, NULL);
@@ -218,7 +219,7 @@ test_connect_first (void)
   if (poll1_nowait (s, POLLIN | POLLRDNORM | POLLRDBAND) != 0)
     failed ("can read, socket not connected");
 
-  c1 = connect_to_socket (FALSE);
+  c1 = connect_to_socket (false);
 
   if (poll1_wait (s, POLLIN | POLLRDNORM | POLLRDBAND) != (POLLIN | 
POLLRDNORM))
     failed ("expecting POLLIN | POLLRDNORM on passive socket");
@@ -265,7 +266,7 @@ test_accept_first (void)
   else
     {
       close (s);
-      c = connect_to_socket (TRUE);
+      c = connect_to_socket (true);
       if (poll1_nowait (c, POLLOUT | POLLWRNORM | POLLRDBAND)
          != (POLLOUT | POLLWRNORM))
         failed ("cannot write after blocking connect");
@@ -319,7 +320,7 @@ test_socket_pair (void)
 
   socklen_t addrlen = sizeof (ia);
   int s = open_server_socket ();
-  int c1 = connect_to_socket (FALSE);
+  int c1 = connect_to_socket (false);
   int c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
 
   close (s);
@@ -358,6 +359,8 @@ main ()
 {
   int result;
 
+  gl_sockets_startup (SOCKETS_2_0);
+
 #ifdef INTERACTIVE
   printf ("Please press Enter\n");
   test (test_tty, "TTY");

reply via email to

[Prev in Thread] Current Thread [Next in Thread]