Module: wine Branch: master Commit: 65448311840c0f6da470e4c388789f6335cb9fdb URL: http://source.winehq.org/git/wine.git/?a=commit;h=65448311840c0f6da470e4c388...
Author: Paul Vriens paul.vriens.wine@gmail.com Date: Sun Mar 11 19:42:35 2007 +0100
advapi32/tests: Prepare for more tests and use skip.
---
dlls/advapi32/tests/registry.c | 31 +++++++++++++++++++++---------- 1 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c index 283da34..7e689e7 100644 --- a/dlls/advapi32/tests/registry.c +++ b/dlls/advapi32/tests/registry.c @@ -33,6 +33,22 @@ static DWORD GLE; static const char * sTestpath1 = "%LONGSYSTEMVAR%\subdir1"; static const char * sTestpath2 = "%FOO%\subdir1";
+static HMODULE hadvapi32; +static DWORD (WINAPI *pRegGetValueA)(HKEY,LPCSTR,LPCSTR,DWORD,LPDWORD,PVOID,LPDWORD); + +#define ADVAPI32_GET_PROC(func) \ + p ## func = (void*)GetProcAddress(hadvapi32, #func); \ + if(!p ## func) \ + trace("GetProcAddress(%s) failed\n", #func); + +static void InitFunctionPtrs(void) +{ + hadvapi32 = GetModuleHandleA("advapi32.dll"); + + /* This function was introduced with Windows 2003 SP1 */ + ADVAPI32_GET_PROC(RegGetValueA) +} + /* delete key and all its subkeys */ static DWORD delete_key( HKEY hkey ) { @@ -360,9 +376,6 @@ static void test_query_value_ex(void)
static void test_get_value(void) { - HMODULE hadvapi32; - DWORD (WINAPI *pRegGetValueA)(HKEY,LPCSTR,LPCSTR,DWORD,LPDWORD,PVOID,LPDWORD); - DWORD ret; DWORD size; DWORD type; @@ -370,16 +383,11 @@ static void test_get_value(void) CHAR buf[80]; CHAR expanded[] = "bar\subdir1";
- /* This function was introduced with Windows 2003 SP1 */ - hadvapi32 = LoadLibraryA("advapi32.dll"); - if(!hadvapi32) + if(!pRegGetValueA) { - ok(0, "error=%d\n", GetLastError()); + skip("RegGetValue not available on this platform\n"); return; } - pRegGetValueA = (PVOID)GetProcAddress(hadvapi32, "RegGetValueA"); - if(!pRegGetValueA) - return;
/* Query REG_DWORD using RRF_RT_REG_DWORD (ok) */ size = type = dw = 0xdeadbeef; @@ -860,6 +868,9 @@ static void test_reg_query_value(void)
START_TEST(registry) { + /* Load pointers for functions that are not available in all Windows versions */ + InitFunctionPtrs(); + setup_main_key(); test_set_value(); create_test_entries();