Commit 75464b13 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

kernel32/tests: Load GetSystemFirmwareTable() dynamically.

parent 053a7e22
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include "winternl.h" #include "winternl.h"
static BOOL (WINAPI * pGetProductInfo)(DWORD, DWORD, DWORD, DWORD, DWORD *); static BOOL (WINAPI * pGetProductInfo)(DWORD, DWORD, DWORD, DWORD, DWORD *);
static UINT (WINAPI * pGetSystemFirmwareTable)(DWORD, DWORD, void *, DWORD);
static NTSTATUS (WINAPI * pNtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS, void *, ULONG, ULONG *); static NTSTATUS (WINAPI * pNtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS, void *, ULONG, ULONG *);
static NTSTATUS (WINAPI * pRtlGetVersion)(RTL_OSVERSIONINFOEXW *); static NTSTATUS (WINAPI * pRtlGetVersion)(RTL_OSVERSIONINFOEXW *);
...@@ -44,6 +45,7 @@ static void init_function_pointers(void) ...@@ -44,6 +45,7 @@ static void init_function_pointers(void)
hmod = GetModuleHandleA("kernel32.dll"); hmod = GetModuleHandleA("kernel32.dll");
GET_PROC(GetProductInfo); GET_PROC(GetProductInfo);
GET_PROC(GetSystemFirmwareTable);
hmod = GetModuleHandleA("ntdll.dll"); hmod = GetModuleHandleA("ntdll.dll");
...@@ -709,9 +711,16 @@ static void test_GetSystemFirmwareTable(void) ...@@ -709,9 +711,16 @@ static void test_GetSystemFirmwareTable(void)
static const ULONG min_sfti_len = FIELD_OFFSET(SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer); static const ULONG min_sfti_len = FIELD_OFFSET(SYSTEM_FIRMWARE_TABLE_INFORMATION, TableBuffer);
ULONG expected_len; ULONG expected_len;
UINT len; UINT len;
SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti = HeapAlloc(GetProcessHeap(), 0, min_sfti_len); SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti;
UCHAR *smbios_table; UCHAR *smbios_table;
if (!pGetSystemFirmwareTable)
{
win_skip("GetSystemFirmwareTable not available\n");
return;
}
sfti = HeapAlloc(GetProcessHeap(), 0, min_sfti_len);
ok(!!sfti, "Failed to allocate memory\n"); ok(!!sfti, "Failed to allocate memory\n");
sfti->ProviderSignature = RSMB; sfti->ProviderSignature = RSMB;
sfti->Action = SystemFirmwareTable_Get; sfti->Action = SystemFirmwareTable_Get;
...@@ -729,7 +738,7 @@ static void test_GetSystemFirmwareTable(void) ...@@ -729,7 +738,7 @@ static void test_GetSystemFirmwareTable(void)
expected_len -= min_sfti_len; expected_len -= min_sfti_len;
smbios_table = HeapAlloc(GetProcessHeap(), 0, expected_len); smbios_table = HeapAlloc(GetProcessHeap(), 0, expected_len);
len = GetSystemFirmwareTable(RSMB, 0, smbios_table, expected_len); len = pGetSystemFirmwareTable(RSMB, 0, smbios_table, expected_len);
ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len); ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len);
ok(len == 0 || !memcmp(smbios_table, sfti->TableBuffer, 6), ok(len == 0 || !memcmp(smbios_table, sfti->TableBuffer, 6),
"Expected prologue %02x %02x %02x %02x %02x %02x, got %02x %02x %02x %02x %02x %02x\n", "Expected prologue %02x %02x %02x %02x %02x %02x, got %02x %02x %02x %02x %02x %02x\n",
......
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