ws2_32/tests: Add tests for InetNtopW.
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
8397e3da73
commit
6e32b61503
|
@ -68,6 +68,7 @@ static int (WINAPI *pgetaddrinfo)(LPCSTR,LPCSTR,const struct addrinfo *,struct
|
||||||
static void (WINAPI *pFreeAddrInfoW)(PADDRINFOW);
|
static void (WINAPI *pFreeAddrInfoW)(PADDRINFOW);
|
||||||
static int (WINAPI *pGetAddrInfoW)(LPCWSTR,LPCWSTR,const ADDRINFOW *,PADDRINFOW *);
|
static int (WINAPI *pGetAddrInfoW)(LPCWSTR,LPCWSTR,const ADDRINFOW *,PADDRINFOW *);
|
||||||
static PCSTR (WINAPI *pInetNtop)(INT,LPVOID,LPSTR,ULONG);
|
static PCSTR (WINAPI *pInetNtop)(INT,LPVOID,LPSTR,ULONG);
|
||||||
|
static PCWSTR(WINAPI *pInetNtopW)(INT,LPVOID,LPWSTR,ULONG);
|
||||||
static int (WINAPI *pInetPtonA)(INT,LPCSTR,LPVOID);
|
static int (WINAPI *pInetPtonA)(INT,LPCSTR,LPVOID);
|
||||||
static int (WINAPI *pInetPtonW)(INT,LPWSTR,LPVOID);
|
static int (WINAPI *pInetPtonW)(INT,LPWSTR,LPVOID);
|
||||||
static int (WINAPI *pWSALookupServiceBeginW)(LPWSAQUERYSETW,DWORD,LPHANDLE);
|
static int (WINAPI *pWSALookupServiceBeginW)(LPWSAQUERYSETW,DWORD,LPHANDLE);
|
||||||
|
@ -1227,6 +1228,7 @@ static void Init (void)
|
||||||
pFreeAddrInfoW = (void *)GetProcAddress(hws2_32, "FreeAddrInfoW");
|
pFreeAddrInfoW = (void *)GetProcAddress(hws2_32, "FreeAddrInfoW");
|
||||||
pGetAddrInfoW = (void *)GetProcAddress(hws2_32, "GetAddrInfoW");
|
pGetAddrInfoW = (void *)GetProcAddress(hws2_32, "GetAddrInfoW");
|
||||||
pInetNtop = (void *)GetProcAddress(hws2_32, "inet_ntop");
|
pInetNtop = (void *)GetProcAddress(hws2_32, "inet_ntop");
|
||||||
|
pInetNtopW = (void *)GetProcAddress(hws2_32, "InetNtopW");
|
||||||
pInetPtonA = (void *)GetProcAddress(hws2_32, "inet_pton");
|
pInetPtonA = (void *)GetProcAddress(hws2_32, "inet_pton");
|
||||||
pInetPtonW = (void *)GetProcAddress(hws2_32, "InetPtonW");
|
pInetPtonW = (void *)GetProcAddress(hws2_32, "InetPtonW");
|
||||||
pWSALookupServiceBeginW = (void *)GetProcAddress(hws2_32, "WSALookupServiceBeginW");
|
pWSALookupServiceBeginW = (void *)GetProcAddress(hws2_32, "WSALookupServiceBeginW");
|
||||||
|
@ -4869,11 +4871,12 @@ static void test_inet_pton(void)
|
||||||
int i, ret;
|
int i, ret;
|
||||||
DWORD err;
|
DWORD err;
|
||||||
char buffer[64],str[64];
|
char buffer[64],str[64];
|
||||||
WCHAR printableW[64];
|
WCHAR printableW[64], collapsedW[64];
|
||||||
const char *ptr;
|
const char *ptr;
|
||||||
|
const WCHAR *ptrW;
|
||||||
|
|
||||||
/* InetNtop and InetPton became available in Vista and Win2008 */
|
/* InetNtop and InetPton became available in Vista and Win2008 */
|
||||||
if (!pInetNtop || !pInetPtonA || !pInetPtonW)
|
if (!pInetNtop || !pInetNtopW || !pInetPtonA || !pInetPtonW)
|
||||||
{
|
{
|
||||||
win_skip("InetNtop and/or InetPton not present, not executing tests\n");
|
win_skip("InetNtop and/or InetPton not present, not executing tests\n");
|
||||||
return;
|
return;
|
||||||
|
@ -4921,6 +4924,18 @@ static void test_inet_pton(void)
|
||||||
ok(memcmp(buffer, tests[i].raw_data,
|
ok(memcmp(buffer, tests[i].raw_data,
|
||||||
tests[i].family == AF_INET ? sizeof(struct in_addr) : sizeof(struct in6_addr)) == 0,
|
tests[i].family == AF_INET ? sizeof(struct in_addr) : sizeof(struct in6_addr)) == 0,
|
||||||
"Test [%d]: Expected binary data differs\n", i);
|
"Test [%d]: Expected binary data differs\n", i);
|
||||||
|
|
||||||
|
/* Test the result from Pton with Ntop */
|
||||||
|
printableW[0] = 0xdead;
|
||||||
|
ptrW = pInetNtopW(tests[i].family, buffer, printableW, sizeof(printableW) / sizeof(printableW[0]));
|
||||||
|
ok (ptrW != NULL, "Test [%d]: Failed with NULL\n", i);
|
||||||
|
ok (ptrW == printableW, "Test [%d]: Pointers differ (%p != %p)\n", i, ptrW, printableW);
|
||||||
|
if (!ptrW) continue;
|
||||||
|
|
||||||
|
MultiByteToWideChar(CP_ACP, 0, tests[i].collapsed, -1, collapsedW,
|
||||||
|
sizeof(collapsedW) / sizeof(collapsedW[0]));
|
||||||
|
ok (lstrcmpW(ptrW, collapsedW) == 0, "Test [%d]: Expected '%s', got '%s'\n",
|
||||||
|
i, tests[i].collapsed, wine_dbgstr_w(ptrW));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue