changeset 10420:ffae1ac7e958

port poll tests to Windows 2008-09-12 Paolo Bonzini <bonzini@gnu.org> * 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.
author Paolo Bonzini <bonzini@gnu.org>
date Fri, 12 Sep 2008 16:12:44 +0200
parents bbceefd03520
children ab772691412e
files ChangeLog lib/sys_socket.in.h modules/poll-tests tests/test-poll.c
diffstat 4 files changed, 21 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-09-12  Paolo Bonzini  <bonzini@gnu.org>
+
+	* 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.
+
 2008-09-12  Paolo Bonzini  <bonzini@gnu.org>
 
 	* modules/poll-tests: New.
--- 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
--- a/modules/poll-tests
+++ b/modules/poll-tests
@@ -2,10 +2,13 @@
 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])
--- 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 @@
 
   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 @@
 
   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 @@
   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 @@
   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 @@
 
   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 @@
 {
   int result;
 
+  gl_sockets_startup (SOCKETS_2_0);
+
 #ifdef INTERACTIVE
   printf ("Please press Enter\n");
   test (test_tty, "TTY");