=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: kernel32/tests: Improved tests for the ResolveDelayLoadedAPI callback.

Alexandre Julliard julliard at winehq.org
Tue Nov 12 14:26:35 CST 2013


Module: wine
Branch: master
Commit: c6f70ca8535cdf77e5fa9d3284d1ec9450af3f2a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c6f70ca8535cdf77e5fa9d3284d1ec9450af3f2a

Author: André Hentschel <nerv at dawncrow.de>
Date:   Mon Nov 11 23:17:55 2013 +0100

kernel32/tests: Improved tests for the ResolveDelayLoadedAPI callback.

---

 dlls/kernel32/tests/loader.c |   54 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index 02853fd..ab99e52 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -2191,8 +2191,55 @@ if (0)
 
 static PVOID WINAPI failuredllhook(ULONG ul, DELAYLOAD_INFO* pd)
 {
+    ok(ul == 4, "expected 4, got %u\n", ul);
+    ok(!!pd, "no delayload info supplied\n");
+    if (pd)
+    {
+        ok(pd->Size == sizeof(*pd), "got %u\n", pd->Size);
+        ok(!!pd->DelayloadDescriptor, "no DelayloadDescriptor supplied\n");
+        if (pd->DelayloadDescriptor)
+        {
+            ok(pd->DelayloadDescriptor->Attributes.AllAttributes == 1,
+               "expected 1, got %u\n", pd->DelayloadDescriptor->Attributes.AllAttributes);
+            ok(pd->DelayloadDescriptor->DllNameRVA == 0x2000,
+               "expected 0x2000, got %x\n", pd->DelayloadDescriptor->DllNameRVA);
+            ok(pd->DelayloadDescriptor->ModuleHandleRVA == 0x201a,
+               "expected 0x201a, got %x\n", pd->DelayloadDescriptor->ModuleHandleRVA);
+            ok(pd->DelayloadDescriptor->ImportAddressTableRVA > pd->DelayloadDescriptor->ModuleHandleRVA,
+               "expected %x > %x\n", pd->DelayloadDescriptor->ImportAddressTableRVA,
+               pd->DelayloadDescriptor->ModuleHandleRVA);
+            ok(pd->DelayloadDescriptor->ImportNameTableRVA > pd->DelayloadDescriptor->ImportAddressTableRVA,
+               "expected %x > %x\n", pd->DelayloadDescriptor->ImportNameTableRVA,
+               pd->DelayloadDescriptor->ImportAddressTableRVA);
+            ok(pd->DelayloadDescriptor->BoundImportAddressTableRVA == 0,
+               "expected 0, got %x\n", pd->DelayloadDescriptor->BoundImportAddressTableRVA);
+            ok(pd->DelayloadDescriptor->UnloadInformationTableRVA == 0,
+               "expected 0, got %x\n", pd->DelayloadDescriptor->UnloadInformationTableRVA);
+            ok(pd->DelayloadDescriptor->TimeDateStamp == 0,
+               "expected 0, got %x\n", pd->DelayloadDescriptor->TimeDateStamp);
+        }
+
+        ok(!!pd->ThunkAddress, "no ThunkAddress supplied\n");
+        if (pd->ThunkAddress)
+            ok(pd->ThunkAddress->u1.Ordinal == 0, "expected 0, got %x\n", (UINT)pd->ThunkAddress->u1.Ordinal);
+
+        ok(!!pd->TargetDllName, "no TargetDllName supplied\n");
+        if (pd->TargetDllName)
+            ok(!strcmp(pd->TargetDllName, "secur32.dll"),
+               "expected \"secur32.dll\", got \"%s\"\n", pd->TargetDllName);
+
+        ok(pd->TargetApiDescriptor.ImportDescribedByName == 0,
+           "expected 0, got %x\n", pd->TargetApiDescriptor.ImportDescribedByName);
+        ok(pd->TargetApiDescriptor.Description.Ordinal == 0 ||
+           pd->TargetApiDescriptor.Description.Ordinal == 999,
+           "expected 0, got %x\n", pd->TargetApiDescriptor.Description.Ordinal);
+
+        ok(!!pd->TargetModuleBase, "no TargetModuleBase supplied\n");
+        ok(pd->Unused == NULL, "expected NULL, got %p\n", pd->Unused);
+        ok(pd->LastError, "no LastError supplied\n");
+    }
     cb_count++;
-    return NULL;
+    return (void*)0xdeadbeef;
 }
 
 static void test_ResolveDelayLoadedAPI(void)
@@ -2228,6 +2275,9 @@ static void test_ResolveDelayLoadedAPI(void)
         {
             FALSE, IMAGE_ORDINAL_FLAG | 0, FALSE
         },
+        {
+            FALSE, IMAGE_ORDINAL_FLAG | 999, FALSE
+        },
     };
 
     if (!pResolveDelayLoadedAPI)
@@ -2433,7 +2483,7 @@ static void test_ResolveDelayLoadedAPI(void)
             }
             else
             {
-                ok(ret == NULL, "Test %u: ResolveDelayLoadedAPI succeeded\n", i);
+                ok(ret == (void*)0xdeadbeef, "Test %u: ResolveDelayLoadedAPI succeeded with %p\n", i, ret);
                 ok(cb_count, "Test %u: Wrong callback count: %d\n", i, cb_count);
             }
         }




More information about the wine-cvs mailing list