WINSOCK: some test fixes

Saulius Krasuckas saulius2 at ar.fi.lt
Fri Nov 4 09:37:34 CST 2005


Log message:
	Saulius Krasuckas <saulius.krasuckas at ieee.org>
	- Stricten cases for NT in a two tests.
	- WSAAddressToString[AW] don't fail on Win9x for those.
	- Modify it to pass new tests.


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	4 Nov 2005 14:27:23 -0000
@@ -1044,6 +1044,7 @@ static void test_WSAAddressToStringA(voi
 {
     INT ret;
     DWORD len;
+    int GLE;
     SOCKADDR_IN sockaddr;
     CHAR address[22]; /* 12 digits + 3 dots + ':' + 5 digits + '\0' */
 
@@ -1059,8 +1060,10 @@ static void test_WSAAddressToStringA(voi
     sockaddr.sin_addr.s_addr = 0;
 
     ret = WSAAddressToStringA( (SOCKADDR*)&sockaddr, sizeof(sockaddr), NULL, address, &len );
-    ok( ret == SOCKET_ERROR, "WSAAddressToStringA() succeeded! WSAGetLastError()=%x, ret=%d\n",
-        WSAGetLastError(), ret );
+    GLE = WSAGetLastError();
+    ok( (ret == SOCKET_ERROR && GLE == WSAEFAULT) || (ret == 0), 
+        "WSAAddressToStringA() failed unexpectedly: WSAGetLastError()=%d, ret=%d\n",
+        GLE, ret );
 
     len = sizeof(address);
 
@@ -1111,6 +1114,7 @@ static void test_WSAAddressToStringW(voi
 {
     INT ret;
     DWORD len;
+    int GLE;
     SOCKADDR_IN sockaddr;
     WCHAR address[22]; /* 12 digits + 3 dots + ':' + 5 digits + '\0' */
 
@@ -1127,8 +1131,10 @@ static void test_WSAAddressToStringW(voi
     sockaddr.sin_addr.s_addr = 0;
 
     ret = WSAAddressToStringW( (SOCKADDR*)&sockaddr, sizeof(sockaddr), NULL, address, &len );
-    ok( ret == SOCKET_ERROR, "WSAAddressToStringW() succeeded! WSAGetLastError()=%x, ret=%d\n",
-        WSAGetLastError(), ret );
+    GLE = WSAGetLastError();
+    ok( (ret == SOCKET_ERROR && GLE == WSAEFAULT) || (ret == 0), 
+        "WSAAddressToStringW() failed unexpectedly: WSAGetLastError()=%d, ret=%d\n",
+        GLE, ret );
 
     len = sizeof(address);
 
Index: dlls/winsock/socket.c
===================================================================
RCS file: /home/wine/wine/dlls/winsock/socket.c,v
retrieving revision 1.192
diff -p -u -r1.192 socket.c
--- dlls/winsock/socket.c	24 Oct 2005 21:41:34 -0000	1.192
+++ dlls/winsock/socket.c	4 Nov 2005 14:27:31 -0000
@@ -3966,7 +3966,7 @@ INT WINAPI WSAAddressToStringA( LPSOCKAD
     CHAR buffer[22]; /* 12 digits + 3 dots + ':' + 5 digits + '\0' */
     CHAR *p;
 
-    TRACE( "(%p, %lx, %p, %p, %p)\n", sockaddr, len, info, string, lenstr );
+    TRACE( "(%p, %ld, %p, %p, %p)\n", sockaddr, len, info, string, lenstr );
 
     if (!sockaddr || len < sizeof(SOCKADDR_IN)) return SOCKET_ERROR;
     if (!string || !lenstr) return SOCKET_ERROR;
@@ -3989,6 +3989,7 @@ INT WINAPI WSAAddressToStringA( LPSOCKAD
     if (*lenstr <  size)
     {
         *lenstr = size;
+        WSASetLastError(WSAEFAULT);
         return SOCKET_ERROR;
     }
 



More information about the wine-patches mailing list