https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1e9fb35fbc0dc50c99b36816e40154875f822809
commit 1e9fb35fbc0dc50c99b36816e40154875f822809 Author: Pierre Schweitzer <pie...@reactos.org> AuthorDate: Thu Nov 29 08:42:13 2018 +0100 Commit: Pierre Schweitzer <pie...@reactos.org> CommitDate: Thu Nov 29 20:30:22 2018 +0100 [IPHLPAPI_APITEST] Test GetExtendedTcpTable rather than AllocateAndGetTcpExTable2FromStack --- modules/rostests/apitests/iphlpapi/CMakeLists.txt | 2 +- ...cpExTable2FromStack.c => GetExtendedTcpTable.c} | 80 ++++++++++++---------- modules/rostests/apitests/iphlpapi/testlist.c | 12 ++-- 3 files changed, 52 insertions(+), 42 deletions(-) diff --git a/modules/rostests/apitests/iphlpapi/CMakeLists.txt b/modules/rostests/apitests/iphlpapi/CMakeLists.txt index 8e59d25643..23b8218972 100644 --- a/modules/rostests/apitests/iphlpapi/CMakeLists.txt +++ b/modules/rostests/apitests/iphlpapi/CMakeLists.txt @@ -1,6 +1,6 @@ list(APPEND SOURCE - AllocateAndGetTcpExTable2FromStack.c + GetExtendedTcpTable.c GetInterfaceName.c GetNetworkParams.c icmp.c diff --git a/modules/rostests/apitests/iphlpapi/AllocateAndGetTcpExTable2FromStack.c b/modules/rostests/apitests/iphlpapi/GetExtendedTcpTable.c similarity index 76% rename from modules/rostests/apitests/iphlpapi/AllocateAndGetTcpExTable2FromStack.c rename to modules/rostests/apitests/iphlpapi/GetExtendedTcpTable.c index 1f49664fc1..3beda7e8fd 100644 --- a/modules/rostests/apitests/iphlpapi/AllocateAndGetTcpExTable2FromStack.c +++ b/modules/rostests/apitests/iphlpapi/GetExtendedTcpTable.c @@ -11,9 +11,34 @@ #include <iphlpapi.h> #include <winsock2.h> -static DWORD (WINAPI * pAllocateAndGetTcpExTable2FromStack)(PVOID*,BOOL,HANDLE,DWORD,DWORD,TCP_TABLE_CLASS); +DWORD GetExtendedTcpTableWithAlloc(PVOID *TcpTable, BOOL Order, DWORD Family, TCP_TABLE_CLASS Class) +{ + DWORD ret; + DWORD Size = 0; + + *TcpTable = NULL; + + ret = GetExtendedTcpTable(*TcpTable, &Size, Order, Family, Class, 0); + if (ret == ERROR_INSUFFICIENT_BUFFER) + { + *TcpTable = HeapAlloc(GetProcessHeap(), 0, Size); + if (*TcpTable == NULL) + { + return ERROR_OUTOFMEMORY; + } + + ret = GetExtendedTcpTable(*TcpTable, &Size, Order, Family, Class, 0); + if (ret != NO_ERROR) + { + HeapFree(GetProcessHeap(), 0, *TcpTable); + *TcpTable = NULL; + } + } -START_TEST(AllocateAndGetTcpExTable2FromStack) + return ret; +} + +START_TEST(GetExtendedTcpTable) { WSADATA wsaData; SOCKET sock; @@ -23,25 +48,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) PMIB_TCPTABLE_OWNER_MODULE TcpTableOwnerMod; DWORD i; BOOLEAN Found; - HINSTANCE hIpHlpApi; FILETIME Creation; LARGE_INTEGER CreationTime; DWORD Pid = GetCurrentProcessId(); - hIpHlpApi = GetModuleHandleW(L"iphlpapi.dll"); - if (!hIpHlpApi) - { - skip("Failed to load iphlpapi.dll\n"); - return; - } - - pAllocateAndGetTcpExTable2FromStack = (void *)GetProcAddress(hIpHlpApi, "AllocateAndGetTcpExTable2FromStack"); - if (pAllocateAndGetTcpExTable2FromStack == NULL) - { - skip("AllocateAndGetTcpExTable2FromStack not found\n"); - return; - } - if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { skip("Failed to init WS2\n"); @@ -76,7 +86,7 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) goto quit2; } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTable, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_BASIC_ALL) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTable, TRUE, AF_INET, TCP_TABLE_BASIC_ALL) == ERROR_SUCCESS) { ok(TcpTable->dwNumEntries > 0, "No TCP connections?!\n"); @@ -98,10 +108,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTable, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_BASIC_CONNECTIONS) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTable, TRUE, AF_INET, TCP_TABLE_BASIC_CONNECTIONS) == ERROR_SUCCESS) { Found = FALSE; for (i = 0; i < TcpTable->dwNumEntries; ++i) @@ -121,10 +131,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTable, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_BASIC_LISTENER) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTable, TRUE, AF_INET, TCP_TABLE_BASIC_LISTENER) == ERROR_SUCCESS) { ok(TcpTable->dwNumEntries > 0, "No TCP connections?!\n"); @@ -146,10 +156,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTableOwner, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_OWNER_PID_ALL) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTableOwner, TRUE, AF_INET, TCP_TABLE_OWNER_PID_ALL) == ERROR_SUCCESS) { ok(TcpTableOwner->dwNumEntries > 0, "No TCP connections?!\n"); @@ -179,10 +189,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTableOwner, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_OWNER_PID_CONNECTIONS) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTableOwner, TRUE, AF_INET, TCP_TABLE_OWNER_PID_CONNECTIONS) == ERROR_SUCCESS) { Found = FALSE; for (i = 0; i < TcpTableOwner->dwNumEntries; ++i) @@ -202,10 +212,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTableOwner, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_OWNER_PID_LISTENER) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTableOwner, TRUE, AF_INET, TCP_TABLE_OWNER_PID_LISTENER) == ERROR_SUCCESS) { ok(TcpTableOwner->dwNumEntries > 0, "No TCP connections?!\n"); @@ -235,10 +245,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTableOwnerMod, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_OWNER_MODULE_ALL) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTableOwnerMod, TRUE, AF_INET, TCP_TABLE_OWNER_MODULE_ALL) == ERROR_SUCCESS) { ok(TcpTableOwnerMod->dwNumEntries > 0, "No TCP connections?!\n"); @@ -271,10 +281,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTableOwnerMod, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_OWNER_MODULE_CONNECTIONS) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTableOwnerMod, TRUE, AF_INET, TCP_TABLE_OWNER_MODULE_CONNECTIONS) == ERROR_SUCCESS) { Found = FALSE; for (i = 0; i < TcpTableOwnerMod->dwNumEntries; ++i) @@ -294,10 +304,10 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } - if (pAllocateAndGetTcpExTable2FromStack((PVOID *)&TcpTableOwnerMod, TRUE, GetProcessHeap(), 0, AF_INET, TCP_TABLE_OWNER_MODULE_LISTENER) == ERROR_SUCCESS) + if (GetExtendedTcpTableWithAlloc((PVOID *)&TcpTableOwnerMod, TRUE, AF_INET, TCP_TABLE_OWNER_MODULE_LISTENER) == ERROR_SUCCESS) { ok(TcpTableOwnerMod->dwNumEntries > 0, "No TCP connections?!\n"); @@ -330,7 +340,7 @@ START_TEST(AllocateAndGetTcpExTable2FromStack) } else { - skip("AllocateAndGetTcpExTable2FromStack failure\n"); + skip("GetExtendedTcpTableWithAlloc failure\n"); } quit2: diff --git a/modules/rostests/apitests/iphlpapi/testlist.c b/modules/rostests/apitests/iphlpapi/testlist.c index 78843f5b5e..fb2e999445 100644 --- a/modules/rostests/apitests/iphlpapi/testlist.c +++ b/modules/rostests/apitests/iphlpapi/testlist.c @@ -3,7 +3,7 @@ #define STANDALONE #include <apitest.h> -extern void func_AllocateAndGetTcpExTable2FromStack(void); +extern void func_GetExtendedTcpTable(void); extern void func_GetInterfaceName(void); extern void func_GetNetworkParams(void); extern void func_icmp(void); @@ -11,11 +11,11 @@ extern void func_SendARP(void); const struct test winetest_testlist[] = { - { "AllocateAndGetTcpExTable2FromStack", func_AllocateAndGetTcpExTable2FromStack }, - { "GetInterfaceName", func_GetInterfaceName }, - { "GetNetworkParams", func_GetNetworkParams }, - { "icmp", func_icmp }, - { "SendARP", func_SendARP }, + { "GetExtendedTcpTable", func_GetExtendedTcpTable }, + { "GetInterfaceName", func_GetInterfaceName }, + { "GetNetworkParams", func_GetNetworkParams }, + { "icmp", func_icmp }, + { "SendARP", func_SendARP }, { 0, 0 } };