Bruno Jesus : ws2_32/tests: Rework WSAStringToAddress tests.
Module: wine Branch: stable Commit: a9c08daaccb7cddae774693f5fa396bc28533555 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a9c08daaccb7cddae774693f5f... Author: Bruno Jesus <bjesus(a)codeweavers.com> Date: Thu Mar 2 22:21:43 2017 -0300 ws2_32/tests: Rework WSAStringToAddress tests. Current IPv6 tests were hiddenly failing in wine due to overly acceptive ok calls. Signed-off-by: Bruno Jesus <bjesus(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 49a2d1b80230cbd6e4c1c645a85ef1dc080484a5) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/ws2_32/tests/sock.c | 72 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 17 deletions(-) diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c index 5856718..f673688 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c @@ -3325,15 +3325,27 @@ static void test_WSAStringToAddressA(void) (ret == SOCKET_ERROR && (GLE == ERROR_INVALID_PARAMETER || GLE == WSAEINVAL)), "WSAStringToAddressA() failed unexpectedly: %d\n", GLE ); + len = sizeof(sockaddr); + + ret = WSAStringToAddressA( address9, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len ); + GLE = WSAGetLastError(); + ok( (ret == SOCKET_ERROR && GLE == WSAEINVAL), + "WSAStringToAddressA() should have failed with %d\n", GLE ); + len = sizeof(sockaddr6); memset(&sockaddr6, 0, len); sockaddr6.sin6_family = AF_INET6; ret = WSAStringToAddressA( address6, AF_INET6, NULL, (SOCKADDR*)&sockaddr6, &len ); + if (ret == SOCKET_ERROR) + { + win_skip("IPv6 not supported\n"); + return; + } + GLE = WSAGetLastError(); - ok( ret == 0 || (ret == SOCKET_ERROR && GLE == WSAEINVAL), - "WSAStringToAddressA() failed for IPv6 address: %d\n", GLE); + ok( ret == 0, "WSAStringToAddressA() failed for IPv6 address: %d\n", GLE); len = sizeof(sockaddr6); memset(&sockaddr6, 0, len); @@ -3342,8 +3354,8 @@ static void test_WSAStringToAddressA(void) ret = WSAStringToAddressA( address7, AF_INET6, NULL, (SOCKADDR*)&sockaddr6, &len ); GLE = WSAGetLastError(); - ok( ret == 0 || (ret == SOCKET_ERROR && GLE == WSAEINVAL), - "WSAStringToAddressA() failed for IPv6 address: %d\n", GLE); +todo_wine + ok( ret == 0, "WSAStringToAddressA() failed for IPv6 address: %d\n", GLE); len = sizeof(sockaddr6); memset(&sockaddr6, 0, len); @@ -3352,16 +3364,23 @@ static void test_WSAStringToAddressA(void) ret = WSAStringToAddressA( address8, AF_INET6, NULL, (SOCKADDR*)&sockaddr6, &len ); GLE = WSAGetLastError(); - ok( (ret == 0 && sockaddr6.sin6_port == 0xffff) || - (ret == SOCKET_ERROR && GLE == WSAEINVAL), +todo_wine + ok( ret == 0 && sockaddr6.sin6_port == 0xffff, "WSAStringToAddressA() failed for IPv6 address: %d\n", GLE); - len = sizeof(sockaddr); + len = sizeof(sockaddr6); - ret = WSAStringToAddressA( address9, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len ); + ret = WSAStringToAddressA( address7 + 1, AF_INET6, NULL, (SOCKADDR*)&sockaddr, &len ); GLE = WSAGetLastError(); ok( (ret == SOCKET_ERROR && GLE == WSAEINVAL), - "WSAStringToAddressA() should have failed with %d\n", GLE ); + "WSAStringToAddressW() should have failed with %d\n", GLE ); + + len = sizeof(sockaddr6); + + ret = WSAStringToAddressA( address8 + 1, AF_INET6, NULL, (SOCKADDR*)&sockaddr, &len ); + GLE = WSAGetLastError(); + ok( (ret == SOCKET_ERROR && GLE == WSAEINVAL), + "WSAStringToAddressW() should have failed with %d\n", GLE ); } static void test_WSAStringToAddressW(void) @@ -3448,15 +3467,27 @@ static void test_WSAStringToAddressW(void) broken(len == sizeof(SOCKADDR_STORAGE)) /* NT4/2k */, "unexpected length %d\n", len ); + len = sizeof(sockaddr); + + ret = WSAStringToAddressW( address9, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len ); + GLE = WSAGetLastError(); + ok( (ret == SOCKET_ERROR && GLE == WSAEINVAL), + "WSAStringToAddressW() should have failed with %d\n", GLE ); + len = sizeof(sockaddr6); memset(&sockaddr6, 0, len); sockaddr6.sin6_family = AF_INET6; ret = WSAStringToAddressW( address6, AF_INET6, NULL, (SOCKADDR*)&sockaddr6, &len ); + if (ret == SOCKET_ERROR) + { + win_skip("IPv6 not supported\n"); + return; + } + GLE = WSAGetLastError(); - ok( ret == 0 || (ret == SOCKET_ERROR && GLE == WSAEINVAL), - "WSAStringToAddressW() failed for IPv6 address: %d\n", GLE); + ok( ret == 0, "WSAStringToAddressW() failed for IPv6 address: %d\n", GLE); len = sizeof(sockaddr6); memset(&sockaddr6, 0, len); @@ -3465,8 +3496,8 @@ static void test_WSAStringToAddressW(void) ret = WSAStringToAddressW( address7, AF_INET6, NULL, (SOCKADDR*)&sockaddr6, &len ); GLE = WSAGetLastError(); - ok( ret == 0 || (ret == SOCKET_ERROR && GLE == WSAEINVAL), - "WSAStringToAddressW() failed for IPv6 address: %d\n", GLE); +todo_wine + ok( ret == 0, "WSAStringToAddressW() failed for IPv6 address: %d\n", GLE); len = sizeof(sockaddr6); memset(&sockaddr6, 0, len); @@ -3475,13 +3506,20 @@ static void test_WSAStringToAddressW(void) ret = WSAStringToAddressW( address8, AF_INET6, NULL, (SOCKADDR*)&sockaddr6, &len ); GLE = WSAGetLastError(); - ok( (ret == 0 && sockaddr6.sin6_port == 0xffff) || - (ret == SOCKET_ERROR && GLE == WSAEINVAL), +todo_wine + ok( ret == 0 && sockaddr6.sin6_port == 0xffff, "WSAStringToAddressW() failed for IPv6 address: %d\n", GLE); - len = sizeof(sockaddr); + len = sizeof(sockaddr6); - ret = WSAStringToAddressW( address9, AF_INET, NULL, (SOCKADDR*)&sockaddr, &len ); + ret = WSAStringToAddressW( address7 + 1, AF_INET6, NULL, (SOCKADDR*)&sockaddr, &len ); + GLE = WSAGetLastError(); + ok( (ret == SOCKET_ERROR && GLE == WSAEINVAL), + "WSAStringToAddressW() should have failed with %d\n", GLE ); + + len = sizeof(sockaddr6); + + ret = WSAStringToAddressW( address8 + 1, AF_INET6, NULL, (SOCKADDR*)&sockaddr, &len ); GLE = WSAGetLastError(); ok( (ret == SOCKET_ERROR && GLE == WSAEINVAL), "WSAStringToAddressW() should have failed with %d\n", GLE );
participants (1)
-
Alexandre Julliard