tests: APIs not defined on some platforms
Francois Gouget
fgouget at free.fr
Mon Sep 16 05:56:34 CDT 2002
Changelog:
* dlls/netapi32/tests/wksta.c,
dlls/shlwapi/tests/shreg.c
NetpGetComputerName, SHCopyKeyA and SHRegGetPathA don't exist on all
Windows platforms -> use LoadLibrary + GetProcAddress
Index: dlls/netapi32/tests/wksta.c
===================================================================
RCS file: /home/wine/wine/dlls/netapi32/tests/wksta.c,v
retrieving revision 1.1
diff -u -r1.1 wksta.c
--- dlls/netapi32/tests/wksta.c 11 Sep 2002 02:35:18 -0000 1.1
+++ dlls/netapi32/tests/wksta.c 16 Sep 2002 09:27:14 -0000
@@ -27,16 +27,24 @@
#include "lmwksta.h"
#include "lmapibuf.h"
-NET_API_STATUS WINAPI NetpGetComputerName(LPWSTR *Buffer);
+typedef NET_API_STATUS (WINAPI *NetpGetComputerName_func)(LPWSTR *Buffer);
void run_get_comp_name_tests(void)
{
- WCHAR empty[] = {0};
- LPWSTR ws = empty;
-
- ok(NetpGetComputerName(&ws) == NERR_Success, "Computer name is retrieved");
- ok(ws[0] != 0, "Some value is populated to the buffer");
- NetApiBufferFree(ws);
+ HANDLE hnetapi32 = LoadLibraryA("netapi32.dll");
+ if (hnetapi32)
+ {
+ WCHAR empty[] = {0};
+ LPWSTR ws = empty;
+ NetpGetComputerName_func pNetpGetComputerName;
+ pNetpGetComputerName = (NetpGetComputerName_func)GetProcAddress(hnetapi32,"NetpGetComputerName");
+ if (pNetpGetComputerName)
+ {
+ ok((*pNetpGetComputerName)(&ws) == NERR_Success, "Computer name is retrieved");
+ ok(ws[0] != 0, "Some value is populated to the buffer");
+ NetApiBufferFree(ws);
+ }
+ }
}
void run_usergetinfo_tests(void)
Index: dlls/shlwapi/tests/shreg.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/tests/shreg.c,v
retrieving revision 1.9
diff -u -r1.9 shreg.c
--- dlls/shlwapi/tests/shreg.c 12 Sep 2002 22:29:58 -0000 1.9
+++ dlls/shlwapi/tests/shreg.c 16 Sep 2002 09:27:19 -0000
@@ -32,6 +32,12 @@
#define REG_TEST_KEY "Software\\Wine\\Test"
#define REG_CURRENT_VERSION "Software\\Microsoft\\Windows NT\\CurrentVersion"
+static HMODULE hshlwapi=NULL;
+typedef DWORD (WINAPI *SHCopyKeyA_func)(HKEY,LPCSTR,HKEY,DWORD);
+static SHCopyKeyA_func pSHCopyKeyA;
+typedef DWORD (WINAPI *SHRegGetPathA_func)(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD);
+static SHRegGetPathA_func pSHRegGetPathA;
+
static char * sTestpath1 = "%LONGSYSTEMVAR%\\subdir1";
static char * sTestpath2 = "%FOO%\\subdir1";
@@ -112,8 +118,11 @@
{
char buf[MAX_PATH];
+ if (!pSHRegGetPathA)
+ return;
+
strcpy(buf, sEmptyBuffer);
- ok(! SHRegGetPathA(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", buf, 0), "SHRegGetPathA failed");
+ ok(! (*pSHRegGetPathA)(HKEY_CURRENT_USER, REG_TEST_KEY, "Test1", buf, 0), "SHRegGetPathA failed");
ok( 0 == strcmp(sExpTestpath1, buf) , "(%s)", buf);
}
@@ -214,7 +223,6 @@
RegCloseKey(hKey);
}
-
static void test_SHCopyKey(void)
{
HKEY hKeySrc, hKeyDst;
@@ -242,7 +250,8 @@
}
- ok (!SHCopyKeyA(hKeyDst, NULL, hKeySrc, 0), "failed copy");
+ if (pSHCopyKeyA)
+ ok (!(*pSHCopyKeyA)(hKeyDst, NULL, hKeySrc, 0), "failed copy");
RegCloseKey(hKeySrc);
RegCloseKey(hKeyDst);
@@ -265,6 +274,12 @@
START_TEST(shreg)
{
HKEY hkey = create_test_entries();
+ hshlwapi = LoadLibraryA("shlwapi.dll");
+ if (hshlwapi)
+ {
+ pSHCopyKeyA=(SHCopyKeyA_func)GetProcAddress(hshlwapi,"SHCopyKeyA");
+ pSHRegGetPathA=(SHRegGetPathA_func)GetProcAddress(hshlwapi,"SHRegGetPathA");
+ }
test_SHGetValue();
test_SHQUeryValueEx();
test_SHGetRegPath();
--
Francois Gouget fgouget at free.fr http://fgouget.free.fr/
f u kn rd ts, ur wy 2 gky 4 ur wn gd.
More information about the wine-patches
mailing list