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