Paul Vriens : netapi32/tests: Use LoadLibrary where needed and skip.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Mar 23 08:36:25 CDT 2007
Module: wine
Branch: master
Commit: 87b291a261d143f8629bd995e03a496429582f07
URL: http://source.winehq.org/git/wine.git/?a=commit;h=87b291a261d143f8629bd995e03a496429582f07
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Fri Mar 23 11:32:36 2007 +0100
netapi32/tests: Use LoadLibrary where needed and skip.
---
dlls/netapi32/tests/access.c | 35 +++++++++++++----------------------
dlls/netapi32/tests/apibuf.c | 13 +++++++------
dlls/netapi32/tests/ds.c | 18 +++++++++---------
dlls/netapi32/tests/wksta.c | 26 +++++++++++++++-----------
4 files changed, 44 insertions(+), 48 deletions(-)
diff --git a/dlls/netapi32/tests/access.c b/dlls/netapi32/tests/access.c
index 7dd5855..c1bc9d7 100644
--- a/dlls/netapi32/tests/access.c
+++ b/dlls/netapi32/tests/access.c
@@ -32,6 +32,7 @@
WCHAR user_name[UNLEN + 1];
WCHAR computer_name[MAX_COMPUTERNAME_LENGTH + 1];
+/* FIXME : Tests should be language independent */
static const WCHAR sAdminUserName[] = {'A','d','m','i','n','i','s','t','r','a','t',
'o','r',0};
static const WCHAR sGuestUserName[] = {'G','u','e','s','t',0};
@@ -64,7 +65,7 @@ static int init_access_tests(void)
rc=GetUserNameW(user_name, &dwSize);
if (rc==FALSE && GetLastError()==ERROR_CALL_NOT_IMPLEMENTED)
{
- skip("netapi32 functions seem to be missing.\n");
+ skip("GetUserNameW is not available.\n");
return 0;
}
ok(rc, "User Name Retrieved\n");
@@ -82,13 +83,6 @@ static void run_usergetinfo_tests(void)
PUSER_INFO_10 ui10 = NULL;
DWORD dwSize;
- /* If this one is not defined then none of the others will be defined */
- if (!pNetUserGetInfo)
- {
- skip("netapi32 functions seem to be missing.\n");
- return;
- }
-
/* Level 0 */
rc=pNetUserGetInfo(NULL, sAdminUserName, 0, (LPBYTE *)&ui0);
if (rc != NERR_Success) {
@@ -145,12 +139,6 @@ static void run_querydisplayinformation1_tests(void)
BOOL hasAdmin = FALSE;
BOOL hasGuest = FALSE;
- if (!pNetQueryDisplayInformation)
- {
- skip("netapi32 functions seem to be missing.\n");
- return;
- }
-
do
{
Result = pNetQueryDisplayInformation(
@@ -204,12 +192,6 @@ static void run_userhandling_tests(void)
NET_API_STATUS ret;
USER_INFO_1 usri;
- if(!pNetUserAdd || !pNetUserChangePassword || !pNetUserDel)
- {
- skip("Functions for modifying the user database missing. Skipping test.\n");
- return;
- }
-
usri.usri1_name = (LPWSTR) sTestUserName;
usri.usri1_password = (LPWSTR) sTestUserOldPass;
usri.usri1_priv = USER_PRIV_USER;
@@ -245,6 +227,7 @@ static void run_userhandling_tests(void)
START_TEST(access)
{
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
+
pNetApiBufferFree=(void*)GetProcAddress(hnetapi32,"NetApiBufferFree");
pNetApiBufferSize=(void*)GetProcAddress(hnetapi32,"NetApiBufferSize");
pNetQueryDisplayInformation=(void*)GetProcAddress(hnetapi32,"NetQueryDisplayInformation");
@@ -254,8 +237,14 @@ START_TEST(access)
pNetUserChangePassword=(void*)GetProcAddress(hnetapi32, "NetUserChangePassword");
pNetUserDel=(void*)GetProcAddress(hnetapi32, "NetUserDel");
- if (!pNetApiBufferSize)
- trace("It appears there is no netapi32 functionality on this platform\n");
+ /* These functions were introduced with NT. It's safe to assume that
+ * if one is not available, none are.
+ */
+ if (!pNetApiBufferFree) {
+ skip("Needed functions are not available\n");
+ FreeLibrary(hnetapi32);
+ return;
+ }
if (init_access_tests()) {
run_usergetinfo_tests();
@@ -263,4 +252,6 @@ START_TEST(access)
run_usermodalsget_tests();
run_userhandling_tests();
}
+
+ FreeLibrary(hnetapi32);
}
diff --git a/dlls/netapi32/tests/apibuf.c b/dlls/netapi32/tests/apibuf.c
index 1ec79af..751081e 100644
--- a/dlls/netapi32/tests/apibuf.c
+++ b/dlls/netapi32/tests/apibuf.c
@@ -41,9 +41,6 @@ static void run_apibuf_tests(void)
DWORD dwSize;
NET_API_STATUS res;
- if (!pNetApiBufferAllocate)
- return;
-
/* test normal logic */
ok(pNetApiBufferAllocate(1024, (LPVOID *)&p) == NERR_Success,
"Reserved memory\n");
@@ -96,12 +93,16 @@ static void run_apibuf_tests(void)
START_TEST(apibuf)
{
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
+
pNetApiBufferAllocate=(void*)GetProcAddress(hnetapi32,"NetApiBufferAllocate");
pNetApiBufferFree=(void*)GetProcAddress(hnetapi32,"NetApiBufferFree");
pNetApiBufferReallocate=(void*)GetProcAddress(hnetapi32,"NetApiBufferReallocate");
pNetApiBufferSize=(void*)GetProcAddress(hnetapi32,"NetApiBufferSize");
- if (!pNetApiBufferSize)
- trace("It appears there is no netapi32 functionality on this platform\n");
- run_apibuf_tests();
+ if (pNetApiBufferAllocate && pNetApiBufferFree && pNetApiBufferReallocate && pNetApiBufferSize)
+ run_apibuf_tests();
+ else
+ skip("Needed functions are not available\n");
+
+ FreeLibrary(hnetapi32);
}
diff --git a/dlls/netapi32/tests/ds.c b/dlls/netapi32/tests/ds.c
index 7ee8a73..9111915 100644
--- a/dlls/netapi32/tests/ds.c
+++ b/dlls/netapi32/tests/ds.c
@@ -76,18 +76,18 @@ static void test_get(void)
START_TEST(ds)
{
- HMODULE hnetapi32;
-
- hnetapi32 = GetModuleHandleA("netapi32.dll");
+ HMODULE hnetapi32 = LoadLibrary("netapi32.dll");
pDsRoleGetPrimaryDomainInformation=(void*)GetProcAddress(hnetapi32,"DsRoleGetPrimaryDomainInformation");
- if (!pDsRoleGetPrimaryDomainInformation)
+ if (pDsRoleGetPrimaryDomainInformation)
{
- skip("DsRoleGetPrimaryDomainInformation is not available\n");
- return;
+ pDsRoleFreeMemory=(void*)GetProcAddress(hnetapi32,"DsRoleFreeMemory");
+
+ test_params();
+ test_get();
}
- pDsRoleFreeMemory=(void*)GetProcAddress(hnetapi32,"DsRoleFreeMemory");
+ else
+ skip("DsRoleGetPrimaryDomainInformation is not available\n");
- test_params();
- test_get();
+ FreeLibrary(hnetapi32);
}
diff --git a/dlls/netapi32/tests/wksta.c b/dlls/netapi32/tests/wksta.c
index f8e9bb0..ba68eb4 100644
--- a/dlls/netapi32/tests/wksta.c
+++ b/dlls/netapi32/tests/wksta.c
@@ -50,8 +50,10 @@ static int init_wksta_tests(void)
user_name[0] = 0;
dwSize = sizeof(user_name);
rc=GetUserNameW(user_name, &dwSize);
- if (rc==FALSE && GetLastError()==ERROR_CALL_NOT_IMPLEMENTED)
+ if (rc==FALSE && GetLastError()==ERROR_CALL_NOT_IMPLEMENTED) {
+ skip("GetUserNameW is not implemented\n");
return 0;
+ }
ok(rc, "User Name Retrieved\n");
computer_name[0] = 0;
@@ -63,8 +65,6 @@ static int init_wksta_tests(void)
static void run_get_comp_name_tests(void)
{
LPWSTR ws = NULL;
- if (!pNetpGetComputerName)
- return;
ok(pNetpGetComputerName(&ws) == NERR_Success, "Computer name is retrieved\n");
ok(!lstrcmpW(computer_name, ws), "This is really computer name\n");
@@ -78,9 +78,6 @@ static void run_wkstausergetinfo_tests(void)
LPWKSTA_USER_INFO_1101 ui1101 = NULL;
DWORD dwSize;
- if (!pNetWkstaUserGetInfo)
- return;
-
/* Level 0 */
ok(pNetWkstaUserGetInfo(NULL, 0, (LPBYTE *)&ui0) == NERR_Success,
"NetWkstaUserGetInfo is successful\n");
@@ -128,9 +125,6 @@ static void run_wkstatransportenum_tests(void)
NET_API_STATUS apiReturn;
DWORD entriesRead, totalEntries;
- if (!pNetWkstaTransportEnum)
- return;
-
/* 1st check: is param 2 (level) correct? (only if param 5 passed?) */
apiReturn = pNetWkstaTransportEnum(NULL, 1, NULL, MAX_PREFERRED_LENGTH,
NULL, &totalEntries, NULL);
@@ -177,17 +171,27 @@ static void run_wkstatransportenum_tests(void)
START_TEST(wksta)
{
HMODULE hnetapi32=LoadLibraryA("netapi32.dll");
+
pNetApiBufferFree=(void*)GetProcAddress(hnetapi32,"NetApiBufferFree");
pNetApiBufferSize=(void*)GetProcAddress(hnetapi32,"NetApiBufferSize");
pNetpGetComputerName=(void*)GetProcAddress(hnetapi32,"NetpGetComputerName");
pNetWkstaUserGetInfo=(void*)GetProcAddress(hnetapi32,"NetWkstaUserGetInfo");
pNetWkstaTransportEnum=(void*)GetProcAddress(hnetapi32,"NetWkstaTransportEnum");
- if (!pNetApiBufferSize)
- trace("It appears there is no netapi32 functionality on this platform\n");
+
+ /* These functions were introduced with NT. It's safe to assume that
+ * if one is not available, none are.
+ */
+ if (!pNetApiBufferFree) {
+ skip("Needed functions are not available\n");
+ FreeLibrary(hnetapi32);
+ return;
+ }
if (init_wksta_tests()) {
run_get_comp_name_tests();
run_wkstausergetinfo_tests();
run_wkstatransportenum_tests();
}
+
+ FreeLibrary(hnetapi32);
}
More information about the wine-cvs
mailing list