iphlpapi/tests: Add tests for GetTcp6Table.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alex Henrie 2020-02-13 23:51:50 -07:00 committed by Alexandre Julliard
parent 5385937a90
commit 748bed3d10
1 changed files with 48 additions and 0 deletions

View File

@ -56,6 +56,7 @@ static DWORD (WINAPI *pAllocateAndGetTcpExTableFromStack)(void**,BOOL,HANDLE,DWO
static DWORD (WINAPI *pGetIfEntry2)(PMIB_IF_ROW2);
static DWORD (WINAPI *pGetIfTable2)(PMIB_IF_TABLE2*);
static DWORD (WINAPI *pGetIfTable2Ex)(MIB_IF_TABLE_LEVEL,PMIB_IF_TABLE2*);
static DWORD (WINAPI *pGetTcp6Table)(PMIB_TCP6TABLE,PDWORD,BOOL);
static DWORD (WINAPI *pGetUdp6Table)(PMIB_UDP6TABLE,PDWORD,BOOL);
static DWORD (WINAPI *pGetUnicastIpAddressEntry)(MIB_UNICASTIPADDRESS_ROW*);
static DWORD (WINAPI *pGetUnicastIpAddressTable)(ADDRESS_FAMILY,MIB_UNICASTIPADDRESS_TABLE**);
@ -86,6 +87,7 @@ static void loadIPHlpApi(void)
pGetIfEntry2 = (void *)GetProcAddress(hLibrary, "GetIfEntry2");
pGetIfTable2 = (void *)GetProcAddress(hLibrary, "GetIfTable2");
pGetIfTable2Ex = (void *)GetProcAddress(hLibrary, "GetIfTable2Ex");
pGetTcp6Table = (void *)GetProcAddress(hLibrary, "GetTcp6Table");
pGetUdp6Table = (void *)GetProcAddress(hLibrary, "GetUdp6Table");
pGetUnicastIpAddressEntry = (void *)GetProcAddress(hLibrary, "GetUnicastIpAddressEntry");
pGetUnicastIpAddressTable = (void *)GetProcAddress(hLibrary, "GetUnicastIpAddressTable");
@ -2095,6 +2097,51 @@ static void test_ConvertLengthToIpv4Mask(void)
ok( mask == INADDR_NONE, "ConvertLengthToIpv4Mask mask value 0x%08x, expected 0x%08x\n", mask, INADDR_NONE );
}
static void test_GetTcp6Table(void)
{
DWORD ret;
ULONG size = 0;
PMIB_TCP6TABLE buf;
if (!pGetTcp6Table)
{
win_skip("GetTcp6Table not available\n");
return;
}
ret = pGetTcp6Table(NULL, &size, FALSE);
if (ret == ERROR_NOT_SUPPORTED)
{
skip("GetTcp6Table is not supported\n");
return;
}
ok(ret == ERROR_INSUFFICIENT_BUFFER,
"GetTcp6Table(NULL, &size, FALSE) returned %d, expected ERROR_INSUFFICIENT_BUFFER\n", ret);
if (ret != ERROR_INSUFFICIENT_BUFFER) return;
buf = HeapAlloc(GetProcessHeap(), 0, size);
ret = pGetTcp6Table(buf, &size, FALSE);
ok(ret == NO_ERROR,
"GetTcp6Table(buf, &size, FALSE) returned %d, expected NO_ERROR\n", ret);
if (ret == NO_ERROR && winetest_debug > 1)
{
DWORD i;
trace("TCP6 table: %u entries\n", buf->dwNumEntries);
for (i = 0; i < buf->dwNumEntries; i++)
{
trace("%u: local %s%%%u:%u remote %s%%%u:%u state %u\n", i,
ntoa6(&buf->table[i].LocalAddr), ntohs(buf->table[i].dwLocalScopeId),
ntohs(buf->table[i].dwLocalPort), ntoa6(&buf->table[i].RemoteAddr),
ntohs(buf->table[i].dwRemoteScopeId), ntohs(buf->table[i].dwRemotePort),
buf->table[i].State);
}
}
HeapFree(GetProcessHeap(), 0, buf);
}
static void test_GetUdp6Table(void)
{
DWORD apiReturn;
@ -2268,6 +2315,7 @@ START_TEST(iphlpapi)
test_GetUnicastIpAddressEntry();
test_GetUnicastIpAddressTable();
test_ConvertLengthToIpv4Mask();
test_GetTcp6Table();
test_GetUdp6Table();
test_ParseNetworkString();
freeIPHlpApi();