WINSOCK/tests: stop some tests failing on win9x

Saulius Krasuckas saulius2 at ar.fi.lt
Thu Nov 3 15:53:00 CST 2005


Log message:
	Saulius Krasuckas <saulius.krasuckas at ieee.org>
	Make 4 WSAStringToAddress* tests don't fail on Win9x.


Index: dlls/winsock/tests/sock.c
===================================================================
RCS file: /home/wine/wine/dlls/winsock/tests/sock.c,v
retrieving revision 1.25
diff -p -u -r1.25 sock.c
--- dlls/winsock/tests/sock.c	27 Aug 2005 09:20:24 -0000	1.25
+++ dlls/winsock/tests/sock.c	3 Nov 2005 20:00:31 -0000
@@ -1179,6 +1185,7 @@ static void test_WSAStringToAddressA(voi
 {
     INT ret, len;
     SOCKADDR_IN sockaddr;
+    int GLE;
 
     CHAR address1[] = "0.0.0.0";
     CHAR address2[] = "127.127.127.127";
@@ -1214,8 +1221,10 @@ static void test_WSAStringToAddressA(voi
     sockaddr.sin_addr.s_addr = 0;
 
     ret = WSAStringToAddressA( address3, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len );
-    ok( !ret && sockaddr.sin_addr.s_addr == 0xffffffff,
-        "WSAStringToAddressA() failed unexpectedly: %d\n", WSAGetLastError() );
+    GLE = WSAGetLastError();
+    ok( (ret == 0 && sockaddr.sin_addr.s_addr == 0xffffffff) || 
+        (ret == SOCKET_ERROR && GLE == ERROR_INVALID_PARAMETER),
+        "WSAStringToAddressA() failed unexpectedly: %d\n", GLE );
 
     len = sizeof(sockaddr);
     sockaddr.sin_port = 0;
@@ -1230,14 +1239,17 @@ static void test_WSAStringToAddressA(voi
     sockaddr.sin_addr.s_addr = 0;
 
     ret = WSAStringToAddressA( address5, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len );
-    ok( !ret && sockaddr.sin_addr.s_addr == 0xffffffff && sockaddr.sin_port == 0xffff,
-        "WSAStringToAddressA() failed unexpectedly: %d\n", WSAGetLastError() );
+    GLE = WSAGetLastError();
+    ok( (ret == 0 && sockaddr.sin_addr.s_addr == 0xffffffff && sockaddr.sin_port == 0xffff) || 
+        (ret == SOCKET_ERROR && GLE == ERROR_INVALID_PARAMETER),
+        "WSAStringToAddressA() failed unexpectedly: %d\n", GLE );
 }
 
 static void test_WSAStringToAddressW(void)
 {
     INT ret, len;
     SOCKADDR_IN sockaddr;
+    int GLE;
 
     WCHAR address1[] = { '0','.','0','.','0','.','0', 0 };
     WCHAR address2[] = { '1','2','7','.','1','2','7','.','1','2','7','.','1','2','7', 0 };
@@ -1275,8 +1287,10 @@ static void test_WSAStringToAddressW(voi
     sockaddr.sin_addr.s_addr = 0;
 
     ret = WSAStringToAddressW( address3, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len );
-    ok( !ret && sockaddr.sin_addr.s_addr == 0xffffffff,
-        "WSAStringToAddressW() failed unexpectedly: %d\n", WSAGetLastError() );
+    GLE = WSAGetLastError();
+    ok( (ret == 0 && sockaddr.sin_addr.s_addr == 0xffffffff) || 
+        (ret == SOCKET_ERROR && GLE == ERROR_INVALID_PARAMETER),
+        "WSAStringToAddressW() failed unexpectedly: %d\n", GLE );
 
     len = sizeof(sockaddr);
     sockaddr.sin_port = 0;
@@ -1291,8 +1305,9 @@ static void test_WSAStringToAddressW(voi
     sockaddr.sin_addr.s_addr = 0;
 
     ret = WSAStringToAddressW( address5, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len );
-    ok( !ret && sockaddr.sin_addr.s_addr == 0xffffffff && sockaddr.sin_port == 0xffff,
-        "WSAStringToAddressW() failed unexpectedly: %d\n", WSAGetLastError() );
+    ok( (ret == 0 && sockaddr.sin_addr.s_addr == 0xffffffff && sockaddr.sin_port == 0xffff) || 
+        (ret == SOCKET_ERROR && (GLE == ERROR_INVALID_PARAMETER || GLE == WSAEINVAL)),
+        "WSAStringToAddressW() failed unexpectedly: %d\n", GLE );
 }
 
 /**************** Main program  ***************/



More information about the wine-patches mailing list