On Fri, Jun 15, 2018 at 12:59:09AM -0600, Alex Henrie wrote:
Signed-off-by: Alex Henrie alexhenrie24@gmail.com
dlls/kernel32/tests/version.c | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
diff --git a/dlls/kernel32/tests/version.c b/dlls/kernel32/tests/version.c index eb78a383d2..6ca45f0b2e 100644 --- a/dlls/kernel32/tests/version.c +++ b/dlls/kernel32/tests/version.c @@ -26,11 +26,17 @@ #include "winternl.h"
static BOOL (WINAPI * pGetProductInfo)(DWORD, DWORD, DWORD, DWORD, DWORD *); +static NTSTATUS (WINAPI * pNtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS, void *, ULONG, ULONG *); static NTSTATUS (WINAPI * pRtlGetVersion)(RTL_OSVERSIONINFOEXW *);
#define GET_PROC(func) \ p##func = (void *)GetProcAddress(hmod, #func);
+/* Firmware table providers */ +#define ACPI 0x41435049 +#define FIRM 0x4649524D +#define RSMB 0x52534D42
static void init_function_pointers(void) { HMODULE hmod; @@ -41,6 +47,7 @@ static void init_function_pointers(void)
hmod = GetModuleHandleA("ntdll.dll");
- GET_PROC(NtQuerySystemInformation); GET_PROC(RtlGetVersion);
}
@@ -697,6 +704,40 @@ static void test_VerifyVersionInfo(void) ok(ret, "VerifyVersionInfoA failed with error %d\n", GetLastError()); }
+void test_GetSystemFirmwareTable(void) +{
- ULONG expected_len, i;
- UINT len;
- SYSTEM_FIRMWARE_TABLE_INFORMATION *sfti = HeapAlloc(GetProcessHeap(), 0, 16);
- UCHAR *smbios_table = NULL;
- ok(!!sfti, "Failed to allocate memory\n");
- sfti->ProviderSignature = RSMB;
- sfti->Action = SystemFirmwareTable_Get;
You need to initialize TableID.
- pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, 16, &expected_len);
- sfti = HeapReAlloc(GetProcessHeap(), 0, sfti, expected_len);
- ok(!!sfti, "Failed to allocate memory\n");
- pNtQuerySystemInformation(SystemFirmwareTableInformation, sfti, expected_len, &expected_len);
- expected_len -= 16;
- len = GetSystemFirmwareTable(RSMB, 0, smbios_table, 0);
+todo_wine
- ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len);
- smbios_table = HeapAlloc(GetProcessHeap(), 0, len);
- len = GetSystemFirmwareTable(RSMB, 0, smbios_table, len);
+todo_wine
- ok(len == expected_len, "Expected length %u, got %u\n", expected_len, len);
- for (i = 0; i < len; i++)
- {
ok(smbios_table[i] == sfti->TableBuffer[i],
"Offset %u: Expected %02x, got %02x\n", i, sfti->TableBuffer[i], smbios_table[i]);
- }
- HeapFree(GetProcessHeap(), 0, sfti);
- HeapFree(GetProcessHeap(), 0, smbios_table);
+}
START_TEST(version) { init_function_pointers(); @@ -704,4 +745,5 @@ START_TEST(version) test_GetProductInfo(); test_GetVersionEx(); test_VerifyVersionInfo();
- test_GetSystemFirmwareTable();
}
2.17.1