Commit f5678a4d authored by Paul Vriens's avatar Paul Vriens Committed by Alexandre Julliard

ntdll/tests: Use GetModuleHandle and skip.

parent dddf3487
...@@ -24,34 +24,33 @@ static NTSTATUS (WINAPI * pNtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS, P ...@@ -24,34 +24,33 @@ static NTSTATUS (WINAPI * pNtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS, P
static NTSTATUS (WINAPI * pNtQueryInformationProcess)(HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG); static NTSTATUS (WINAPI * pNtQueryInformationProcess)(HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG);
static NTSTATUS (WINAPI * pNtReadVirtualMemory)(HANDLE, const void*, void*, SIZE_T, SIZE_T*); static NTSTATUS (WINAPI * pNtReadVirtualMemory)(HANDLE, const void*, void*, SIZE_T, SIZE_T*);
static HMODULE hntdll = 0;
/* one_before_last_pid is used to be able to compare values of a still running process /* one_before_last_pid is used to be able to compare values of a still running process
with the output of the test_query_process_times and test_query_process_handlecount tests. with the output of the test_query_process_times and test_query_process_handlecount tests.
*/ */
static DWORD one_before_last_pid = 0; static DWORD one_before_last_pid = 0;
#define NTDLL_GET_PROC(func) \ #define NTDLL_GET_PROC(func) do { \
p ## func = (void*)GetProcAddress(hntdll, #func); \ p ## func = (void*)GetProcAddress(hntdll, #func); \
if(!p ## func) { \ if(!p ## func) { \
trace("GetProcAddress(%s) failed\n", #func); \ trace("GetProcAddress(%s) failed\n", #func); \
FreeLibrary(hntdll); \
return FALSE; \ return FALSE; \
} } \
} while(0)
static BOOL InitFunctionPtrs(void) static BOOL InitFunctionPtrs(void)
{ {
hntdll = LoadLibraryA("ntdll.dll"); /* All needed functions are NT based, so using GetModuleHandle is a good check */
if(!hntdll) { HMODULE hntdll = GetModuleHandle("ntdll");
trace("Could not load ntdll.dll\n"); if (!hntdll)
return FALSE;
}
if (hntdll)
{ {
NTDLL_GET_PROC(NtQuerySystemInformation) skip("Not running on NT\n");
NTDLL_GET_PROC(NtQueryInformationProcess) return FALSE;
NTDLL_GET_PROC(NtReadVirtualMemory)
} }
NTDLL_GET_PROC(NtQuerySystemInformation);
NTDLL_GET_PROC(NtQueryInformationProcess);
NTDLL_GET_PROC(NtReadVirtualMemory);
return TRUE; return TRUE;
} }
...@@ -277,7 +276,7 @@ static void test_query_process(void) ...@@ -277,7 +276,7 @@ static void test_query_process(void)
is_nt = ( spi->dwOffset - (sbi.NumberOfProcessors * sizeof(SYSTEM_THREAD_INFORMATION)) == 136); is_nt = ( spi->dwOffset - (sbi.NumberOfProcessors * sizeof(SYSTEM_THREAD_INFORMATION)) == 136);
if (is_nt) trace("Windows version is NT, we will skip thread tests\n"); if (is_nt) skip("Windows version is NT, we will skip thread tests\n");
/* Check if we have some return values /* Check if we have some return values
* *
...@@ -629,7 +628,7 @@ static void test_query_process_io(void) ...@@ -629,7 +628,7 @@ static void test_query_process_io(void)
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessIoCounters, &pii, sizeof(pii), &ReturnLength); status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessIoCounters, &pii, sizeof(pii), &ReturnLength);
if (status == STATUS_NOT_SUPPORTED) if (status == STATUS_NOT_SUPPORTED)
{ {
trace("ProcessIoCounters information class not supported, skipping tests\n"); skip("ProcessIoCounters information class is not supported\n");
return; return;
} }
...@@ -892,6 +891,4 @@ START_TEST(info) ...@@ -892,6 +891,4 @@ START_TEST(info)
/* belongs into it's own file */ /* belongs into it's own file */
trace("Starting test_readvirtualmemory()\n"); trace("Starting test_readvirtualmemory()\n");
test_readvirtualmemory(); test_readvirtualmemory();
FreeLibrary(hntdll);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment