Phil Lodwick : winsock/tests: select() conformance test improvements.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Feb 6 15:01:08 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 96a46367a98fc62ac37fe3b360690a3f005d8018
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=96a46367a98fc62ac37fe3b360690a3f005d8018
Author: Phil Lodwick <Phil.Lodwick at EFI.COM>
Date: Mon Feb 6 20:59:08 2006 +0100
winsock/tests: select() conformance test improvements.
Add OK tests around more function calls.
Add two more todo_wine tests that fail.
---
dlls/winsock/tests/sock.c | 57 ++++++++++++++++++++++++++++++---------------
1 files changed, 38 insertions(+), 19 deletions(-)
diff --git a/dlls/winsock/tests/sock.c b/dlls/winsock/tests/sock.c
index 13f4173..ae9184e 100644
--- a/dlls/winsock/tests/sock.c
+++ b/dlls/winsock/tests/sock.c
@@ -1319,26 +1319,45 @@ static void test_WSAStringToAddressW(voi
static void test_select(void)
{
- SOCKET fd;
-
- fd = socket(AF_INET, SOCK_STREAM, 0);
- if (fd != INVALID_SOCKET)
- {
- fd_set readfds;
- struct timeval select_timeout;
-
- FD_ZERO(&readfds);
- FD_SET(fd, &readfds);
- select_timeout.tv_sec=2;
- select_timeout.tv_usec=0;
-
- todo_wine {
- if (select((int) fd+1, &readfds, NULL, NULL, &select_timeout) != SOCKET_ERROR)
- ok(!FD_ISSET(fd, &readfds), "FD should not be set\n");
- }
-
- closesocket(fd);
+ SOCKET fdRead, fdWrite;
+ fd_set readfds, writefds, exceptfds;
+ int maxfd;
+ int ret;
+ struct timeval select_timeout;
+
+ fdRead = socket(AF_INET, SOCK_STREAM, 0);
+ ok( (fdRead != INVALID_SOCKET), "socket failed unexpectedly: %d\n", WSAGetLastError() );
+ fdWrite = socket(AF_INET, SOCK_STREAM, 0);
+ ok( (fdWrite != INVALID_SOCKET), "socket failed unexpectedly: %d\n", WSAGetLastError() );
+
+ FD_ZERO(&readfds);
+ FD_ZERO(&writefds);
+ FD_ZERO(&exceptfds);
+ FD_SET(fdRead, &readfds);
+ FD_SET(fdWrite, &writefds);
+ FD_SET(fdRead, &exceptfds);
+ FD_SET(fdWrite, &exceptfds);
+ select_timeout.tv_sec=2;
+ select_timeout.tv_usec=0;
+
+ maxfd = fdRead;
+ if (fdWrite > maxfd)
+ maxfd = fdWrite;
+
+ todo_wine {
+ ret = select(maxfd+1, &readfds, &writefds, &exceptfds, &select_timeout);
+ ok ( (ret == 0), "select should not return any socket handles\n");
+ ok ( !FD_ISSET(fdRead, &readfds), "FD should not be set\n");
+ ok ( !FD_ISSET(fdWrite, &writefds), "FD should not be set\n");
}
+
+ ok ( !FD_ISSET(fdRead, &exceptfds), "FD should not be set\n");
+ ok ( !FD_ISSET(fdWrite, &exceptfds), "FD should not be set\n");
+
+ ret = closesocket(fdRead);
+ ok ( (ret == 0), "closesocket failed unexpectedly: %d\n", ret);
+ ret = closesocket(fdWrite);
+ ok ( (ret == 0), "closesocket failed unexpectedly: %d\n", ret);
}
/**************** Main program ***************/
More information about the wine-cvs
mailing list