[PATCH 1/4] advapi32/tests: Remove dynamic function binding from LSA tests

Nikolay Sivov <[email protected]>
Newsgroups gmane.comp.emulators.wine.patches
Message-ID <[email protected]>
Signed-off-by: Nikolay Sivov <[email protected]>
---
 dlls/advapi32/tests/lsa.c | 136 +++++++++++++++-------------------------------
 1 file changed, 45 insertions(+), 91 deletions(-)

diff --git a/dlls/advapi32/tests/lsa.c b/dlls/advapi32/tests/lsa.c
index 4daf75f58d..81bcf21069 100644
--- a/dlls/advapi32/tests/lsa.c
+++ b/dlls/advapi32/tests/lsa.c
@@ -35,39 +35,6 @@
 
 DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
 
-static HMODULE hadvapi32;
-static NTSTATUS (WINAPI *pLsaClose)(LSA_HANDLE);
-static NTSTATUS (WINAPI *pLsaEnumerateAccountRights)(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG);
-static NTSTATUS (WINAPI *pLsaFreeMemory)(PVOID);
-static NTSTATUS (WINAPI *pLsaOpenPolicy)(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES,ACCESS_MASK,PLSA_HANDLE);
-static NTSTATUS (WINAPI *pLsaQueryInformationPolicy)(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*);
-static BOOL     (WINAPI *pConvertSidToStringSidA)(PSID,LPSTR*);
-static BOOL     (WINAPI *pConvertStringSidToSidA)(LPCSTR,PSID*);
-static NTSTATUS (WINAPI *pLsaLookupNames2)(LSA_HANDLE,ULONG,ULONG,PLSA_UNICODE_STRING,PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_SID2*);
-static NTSTATUS (WINAPI *pLsaLookupSids)(LSA_HANDLE,ULONG,PSID*,LSA_REFERENCED_DOMAIN_LIST**,LSA_TRANSLATED_NAME**);
-static PVOID    (WINAPI *pFreeSid)(PSID);
-
-static BOOL init(void)
-{
-    hadvapi32 = GetModuleHandleA("advapi32.dll");
-
-    pLsaClose = (void*)GetProcAddress(hadvapi32, "LsaClose");
-    pLsaEnumerateAccountRights = (void*)GetProcAddress(hadvapi32, "LsaEnumerateAccountRights");
-    pLsaFreeMemory = (void*)GetProcAddress(hadvapi32, "LsaFreeMemory");
-    pLsaOpenPolicy = (void*)GetProcAddress(hadvapi32, "LsaOpenPolicy");
-    pLsaQueryInformationPolicy = (void*)GetProcAddress(hadvapi32, "LsaQueryInformationPolicy");
-    pConvertSidToStringSidA = (void*)GetProcAddress(hadvapi32, "ConvertSidToStringSidA");
-    pConvertStringSidToSidA = (void*)GetProcAddress(hadvapi32, "ConvertStringSidToSidA");
-    pLsaLookupNames2 = (void*)GetProcAddress(hadvapi32, "LsaLookupNames2");
-    pLsaLookupSids = (void*)GetProcAddress(hadvapi32, "LsaLookupSids");
-    pFreeSid = (void*)GetProcAddress(hadvapi32, "FreeSid");
-
-    if (pLsaClose && pLsaEnumerateAccountRights && pLsaFreeMemory && pLsaOpenPolicy && pLsaQueryInformationPolicy && pConvertSidToStringSidA && pConvertStringSidToSidA && pFreeSid)
-        return TRUE;
-
-    return FALSE;
-}
-
 static void test_lsa(void)
 {
     NTSTATUS status;
@@ -77,14 +44,14 @@ static void test_lsa(void)
     ZeroMemory(&object_attributes, sizeof(object_attributes));
     object_attributes.Length = sizeof(object_attributes);
 
-    status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
+    status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
     ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
        "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
 
     /* try a more restricted access mask if necessary */
     if (status == STATUS_ACCESS_DENIED) {
         trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES\n");
-        status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES, &handle);
+        status = LsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES, &handle);
         ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION|POLICY_LOOKUP_NAMES) returned 0x%08x\n", status);
     }
 
@@ -96,21 +63,20 @@ static void test_lsa(void)
         HANDLE token;
         BOOL ret;
 
-        status = pLsaQueryInformationPolicy(handle, PolicyAuditEventsInformation, (PVOID*)&audit_events_info);
+        status = LsaQueryInformationPolicy(handle, PolicyAuditEventsInformation, (void **)&audit_events_info);
         if (status == STATUS_ACCESS_DENIED)
             skip("Not enough rights to retrieve PolicyAuditEventsInformation\n");
         else
             ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyAuditEventsInformation) failed, returned 0x%08x\n", status);
-        if (status == STATUS_SUCCESS) {
-            pLsaFreeMemory((LPVOID)audit_events_info);
-        }
+        if (status == STATUS_SUCCESS)
+            LsaFreeMemory(audit_events_info);
 
-        status = pLsaQueryInformationPolicy(handle, PolicyPrimaryDomainInformation, (PVOID*)&primary_domain_info);
+        status = LsaQueryInformationPolicy(handle, PolicyPrimaryDomainInformation, (void **)&primary_domain_info);
         ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyPrimaryDomainInformation) failed, returned 0x%08x\n", status);
         if (status == STATUS_SUCCESS) {
             if (primary_domain_info->Sid) {
                 LPSTR strsid;
-                if (pConvertSidToStringSidA(primary_domain_info->Sid, &strsid))
+                if (ConvertSidToStringSidA(primary_domain_info->Sid, &strsid))
                 {
                     if (primary_domain_info->Name.Buffer) {
                         LPSTR name = NULL;
@@ -129,17 +95,16 @@ static void test_lsa(void)
             }
             else
                 trace("Running on a standalone system.\n");
-            pLsaFreeMemory((LPVOID)primary_domain_info);
+            LsaFreeMemory(primary_domain_info);
         }
 
-        status = pLsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (PVOID*)&account_domain_info);
+        status = LsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (void **)&account_domain_info);
         ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy(PolicyAccountDomainInformation) failed, returned 0x%08x\n", status);
-        if (status == STATUS_SUCCESS) {
-            pLsaFreeMemory((LPVOID)account_domain_info);
-        }
+        if (status == STATUS_SUCCESS)
+            LsaFreeMemory(account_domain_info);
 
         /* This isn't supported in NT4 */
-        status = pLsaQueryInformationPolicy(handle, PolicyDnsDomainInformation, (PVOID*)&dns_domain_info);
+        status = LsaQueryInformationPolicy(handle, PolicyDnsDomainInformation, (void **)&dns_domain_info);
         ok(status == STATUS_SUCCESS || status == STATUS_INVALID_PARAMETER,
            "LsaQueryInformationPolicy(PolicyDnsDomainInformation) failed, returned 0x%08x\n", status);
         if (status == STATUS_SUCCESS) {
@@ -152,7 +117,7 @@ static void test_lsa(void)
                 WCHAR guidstrW[64];
                 UINT len;
                 guidstrW[0] = '\0';
-                pConvertSidToStringSidA(dns_domain_info->Sid, &strsid);
+                ConvertSidToStringSidA(dns_domain_info->Sid, &strsid);
                 StringFromGUID2(&dns_domain_info->DomainGuid, guidstrW, sizeof(guidstrW)/sizeof(WCHAR));
                 len = WideCharToMultiByte( CP_ACP, 0, guidstrW, -1, NULL, 0, NULL, NULL );
                 guidstr = LocalAlloc( 0, len );
@@ -183,7 +148,7 @@ static void test_lsa(void)
             }
             else
                 trace("Running on a standalone system.\n");
-            pLsaFreeMemory((LPVOID)dns_domain_info);
+            LsaFreeMemory(dns_domain_info);
         }
 
         /* We need a valid SID to pass to LsaEnumerateAccountRights */
@@ -207,10 +172,10 @@ static void test_lsa(void)
                 ULONG rights_count;
                 rights = (PLSA_UNICODE_STRING) 0xdeadbeaf;
                 rights_count = 0xcafecafe;
-                status = pLsaEnumerateAccountRights(handle, token_user->User.Sid, &rights, &rights_count);
+                status = LsaEnumerateAccountRights(handle, token_user->User.Sid, &rights, &rights_count);
                 ok(status == STATUS_SUCCESS || status == STATUS_OBJECT_NAME_NOT_FOUND, "Unexpected status 0x%x\n", status);
                 if (status == STATUS_SUCCESS)
-                    pLsaFreeMemory( rights );
+                    LsaFreeMemory( rights );
                 else
                     ok(rights == NULL && rights_count == 0, "Expected rights and rights_count to be set to 0 on failure\n");
             }
@@ -219,7 +184,7 @@ static void test_lsa(void)
             CloseHandle( token );
         }
 
-        status = pLsaClose(handle);
+        status = LsaClose(handle);
         ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status);
     }
 }
@@ -253,12 +218,6 @@ static void test_LsaLookupNames2(void)
     LSA_UNICODE_STRING name[3];
     LPSTR account, sid_dom;
 
-    if (!pLsaLookupNames2)
-    {
-        win_skip("LsaLookupNames2 not available\n");
-        return;
-    }
-
     if ((PRIMARYLANGID(LANGIDFROMLCID(GetSystemDefaultLCID())) != LANG_ENGLISH) ||
         (PRIMARYLANGID(LANGIDFROMLCID(GetThreadLocale())) != LANG_ENGLISH))
     {
@@ -269,7 +228,7 @@ static void test_LsaLookupNames2(void)
     memset(&attrs, 0, sizeof(attrs));
     attrs.Length = sizeof(attrs);
 
-    status = pLsaOpenPolicy(NULL, &attrs, POLICY_ALL_ACCESS, &handle);
+    status = LsaOpenPolicy(NULL, &attrs, POLICY_ALL_ACCESS, &handle);
     ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
        "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
 
@@ -277,7 +236,7 @@ static void test_LsaLookupNames2(void)
     if (status == STATUS_ACCESS_DENIED)
     {
         trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n");
-        status = pLsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &handle);
+        status = LsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &handle);
         ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08x\n", status);
     }
     if (status != STATUS_SUCCESS)
@@ -301,7 +260,7 @@ static void test_LsaLookupNames2(void)
     /* account name only */
     sids = NULL;
     domains = NULL;
-    status = pLsaLookupNames2(handle, 0, 1, &name[0], &domains, &sids);
+    status = LsaLookupNames2(handle, 0, 1, &name[0], &domains, &sids);
     ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %x)\n", status);
     ok(sids[0].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[0].Use);
     ok(sids[0].Flags == 0, "expected 0, got 0x%08x\n", sids[0].Flags);
@@ -309,24 +268,24 @@ static void test_LsaLookupNames2(void)
     get_sid_info(sids[0].Sid, &account, &sid_dom);
     ok(!strcmp(account, "LOCAL SERVICE"), "expected \"LOCAL SERVICE\", got \"%s\"\n", account);
     ok(!strcmp(sid_dom, "NT AUTHORITY"), "expected \"NT AUTHORITY\", got \"%s\"\n", sid_dom);
-    pLsaFreeMemory(sids);
-    pLsaFreeMemory(domains);
+    LsaFreeMemory(sids);
+    LsaFreeMemory(domains);
 
     /* unknown account name */
     sids = NULL;
     domains = NULL;
-    status = pLsaLookupNames2(handle, 0, 1, &name[1], &domains, &sids);
+    status = LsaLookupNames2(handle, 0, 1, &name[1], &domains, &sids);
     ok(status == STATUS_NONE_MAPPED, "expected STATUS_NONE_MAPPED, got %x)\n", status);
     ok(sids[0].Use == SidTypeUnknown, "expected SidTypeUnknown, got %u\n", sids[0].Use);
     ok(sids[0].Flags == 0, "expected 0, got 0x%08x\n", sids[0].Flags);
     ok(domains->Entries == 0, "expected 0, got %u\n", domains->Entries);
-    pLsaFreeMemory(sids);
-    pLsaFreeMemory(domains);
+    LsaFreeMemory(sids);
+    LsaFreeMemory(domains);
 
     /* account + domain */
     sids = NULL;
     domains = NULL;
-    status = pLsaLookupNames2(handle, 0, 1, &name[2], &domains, &sids);
+    status = LsaLookupNames2(handle, 0, 1, &name[2], &domains, &sids);
     ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %x)\n", status);
     ok(sids[0].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[0].Use);
     ok(sids[0].Flags == 0, "expected 0, got 0x%08x\n", sids[0].Flags);
@@ -334,27 +293,27 @@ static void test_LsaLookupNames2(void)
     get_sid_info(sids[0].Sid, &account, &sid_dom);
     ok(!strcmp(account, "LOCAL SERVICE"), "expected \"LOCAL SERVICE\", got \"%s\"\n", account);
     ok(!strcmp(sid_dom, "NT AUTHORITY"), "expected \"NT AUTHORITY\", got \"%s\"\n", sid_dom);
-    pLsaFreeMemory(sids);
-    pLsaFreeMemory(domains);
+    LsaFreeMemory(sids);
+    LsaFreeMemory(domains);
 
     /* all three */
     sids = NULL;
     domains = NULL;
-    status = pLsaLookupNames2(handle, 0, 3, name, &domains, &sids);
+    status = LsaLookupNames2(handle, 0, 3, name, &domains, &sids);
     ok(status == STATUS_SOME_NOT_MAPPED, "expected STATUS_SOME_NOT_MAPPED, got %x)\n", status);
     ok(sids[0].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[0].Use);
     ok(sids[1].Use == SidTypeUnknown, "expected SidTypeUnknown, got %u\n", sids[1].Use);
     ok(sids[2].Use == SidTypeWellKnownGroup, "expected SidTypeWellKnownGroup, got %u\n", sids[2].Use);
     ok(sids[0].DomainIndex == 0, "expected 0, got %u\n", sids[0].DomainIndex);
     ok(domains->Entries == 1, "expected 1, got %u\n", domains->Entries);
-    pLsaFreeMemory(sids);
-    pLsaFreeMemory(domains);
+    LsaFreeMemory(sids);
+    LsaFreeMemory(domains);
 
     HeapFree(GetProcessHeap(), 0, name[0].Buffer);
     HeapFree(GetProcessHeap(), 0, name[1].Buffer);
     HeapFree(GetProcessHeap(), 0, name[2].Buffer);
 
-    status = pLsaClose(handle);
+    status = LsaClose(handle);
     ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status);
 }
 
@@ -373,7 +332,7 @@ static void test_LsaLookupSids(void)
     memset(&attrs, 0, sizeof(attrs));
     attrs.Length = sizeof(attrs);
 
-    status = pLsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy);
+    status = LsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy);
     ok(status == STATUS_SUCCESS, "got 0x%08x\n", status);
 
     ret = OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, &token);
@@ -386,7 +345,7 @@ static void test_LsaLookupSids(void)
     ret = GetTokenInformation(token, TokenUser, user, size, &size);
     ok(ret, "got %d\n", ret);
 
-    status = pLsaLookupSids(policy, 1, &user->User.Sid, &list, &names);
+    status = LsaLookupSids(policy, 1, &user->User.Sid, &list, &names);
     ok(status == STATUS_SUCCESS, "got 0x%08x\n", status);
 
     ok(list->Entries > 0, "got %d\n", list->Entries);
@@ -398,14 +357,14 @@ static void test_LsaLookupSids(void)
            list->Domains[0].Name.Length);
     }
 
-    pLsaFreeMemory(names);
-    pLsaFreeMemory(list);
+    LsaFreeMemory(names);
+    LsaFreeMemory(list);
 
     HeapFree(GetProcessHeap(), 0, user);
 
     CloseHandle(token);
 
-    status = pLsaClose(policy);
+    status = LsaClose(policy);
     ok(status == STATUS_SUCCESS, "got 0x%08x\n", status);
 }
 
@@ -422,13 +381,13 @@ static void test_LsaLookupSids_NullBuffers(void)
     memset(&attrs, 0, sizeof(attrs));
     attrs.Length = sizeof(attrs);
 
-    status = pLsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy);
+    status = LsaOpenPolicy(NULL, &attrs, POLICY_LOOKUP_NAMES, &policy);
     ok(status == STATUS_SUCCESS, "got 0x%08x\n", status);
 
-    ret = pConvertStringSidToSidA("S-1-1-0", &sid);
-    ok(ret == TRUE, "pConvertStringSidToSidA returned false\n");
+    ret = ConvertStringSidToSidA("S-1-1-0", &sid);
+    ok(ret == TRUE, "ConvertStringSidToSidA returned false\n");
 
-    status = pLsaLookupSids(policy, 1, &sid, &list, &names);
+    status = LsaLookupSids(policy, 1, &sid, &list, &names);
     ok(status == STATUS_SUCCESS, "got 0x%08x\n", status);
 
     ok(list->Entries > 0, "got %d\n", list->Entries);
@@ -442,22 +401,17 @@ static void test_LsaLookupSids_NullBuffers(void)
        ok(list->Domains[0].Name.Buffer != NULL, "domain[0] name buffer is null\n");
     }
 
-    pLsaFreeMemory(names);
-    pLsaFreeMemory(list);
+    LsaFreeMemory(names);
+    LsaFreeMemory(list);
 
-    pFreeSid(sid);
+    FreeSid(sid);
 
-    status = pLsaClose(policy);
+    status = LsaClose(policy);
     ok(status == STATUS_SUCCESS, "got 0x%08x\n", status);
 }
 
 START_TEST(lsa)
 {
-    if (!init()) {
-        win_skip("Needed functions are not available\n");
-        return;
-    }
-
     test_lsa();
     test_LsaLookupNames2();
     test_LsaLookupSids();
-- 
2.14.2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.