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