X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-poll.c;h=9ef3c4ce2122a39389126e250d32eecd5648d888;hb=bc2a3d7068f04e1da758a7c02cf19b132ae574cc;hp=5e8d70614feb4490df94a95e11d3237b14bea956;hpb=54898f0a60a82dd7e9225e97288cb85eeb77f476;p=gnulib.git diff --git a/tests/test-poll.c b/tests/test-poll.c index 5e8d70614..9ef3c4ce2 100644 --- a/tests/test-poll.c +++ b/tests/test-poll.c @@ -1,5 +1,5 @@ /* Test of poll() function. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-2011 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,17 +19,22 @@ #include +/* Specification. */ +#include + +#include "signature.h" +SIGNATURE_CHECK (poll, int, (struct pollfd[], nfds_t, int)); + #include #include #include #include #include -#include #include #include #include +#include #include -#include "sockets.h" #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_NATIVE @@ -50,7 +55,7 @@ #define SO_REUSEPORT SO_REUSEADDR #endif -#define TEST_PORT 12345 +#define TEST_PORT 12345 /* Minimal testing infrastructure. */ @@ -129,26 +134,22 @@ connect_to_socket (int blocking) { #ifdef WIN32_NATIVE unsigned long iMode = 1; - ioctlsocket (s, FIONBIO, (void *) &iMode); - + ioctl (s, FIONBIO, (char *) &iMode); + #elif defined F_GETFL int oldflags = fcntl (s, F_GETFL, NULL); - + if (!(oldflags & O_NONBLOCK)) fcntl (s, F_SETFL, oldflags | O_NONBLOCK); #endif } - if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0) + if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0 + && (blocking || errno != EINPROGRESS)) { - if (errno != EINPROGRESS) - { - perror ("connect"); - exit (77); - } + perror ("connect"); + exit (77); } - else if (!blocking) - failed ("huh, connect succeeded?"); return s; } @@ -165,7 +166,7 @@ poll1 (int fd, int ev, int time) pfd.fd = fd; pfd.events = ev; pfd.revents = 0; - r = poll (&pfd, 1, time); + r = poll (&pfd, 1, time); if (r < 0) return r; @@ -272,7 +273,7 @@ test_accept_first (void) close (s); c = connect_to_socket (true); if (poll1_nowait (c, POLLOUT | POLLWRNORM | POLLRDBAND) - != (POLLOUT | POLLWRNORM)) + != (POLLOUT | POLLWRNORM)) failed ("cannot write after blocking connect"); write (c, "foo", 3); wait (&pid); @@ -363,8 +364,6 @@ main () { int result; - gl_sockets_startup (SOCKETS_2_0); - #ifdef INTERACTIVE printf ("Please press Enter\n"); test (test_tty, "TTY");