Module: wine Branch: master Commit: bdd7be374723bb92b7f2f735c5ed91827acd4cb2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bdd7be374723bb92b7f2f735c5...
Author: André Hentschel nerv@dawncrow.de Date: Mon Aug 15 17:52:53 2016 +0200
kernel32/tests: Fill in the delay IAT to succeed on Win10.
Signed-off-by: André Hentschel nerv@dawncrow.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernel32/tests/loader.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c index 7585b9b..28449ac 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c @@ -2608,7 +2608,7 @@ static PVOID WINAPI failuredllhook(ULONG ul, DELAYLOAD_INFO* pd)
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->ThunkAddress->u1.Ordinal, "no ThunkAddress value supplied\n");
ok(!!pd->TargetDllName, "no TargetDllName supplied\n"); if (pd->TargetDllName) @@ -2782,9 +2782,20 @@ static void test_ResolveDelayLoadedAPI(void) ret = WriteFile(hfile, test_func, sizeof(test_func), &dummy, NULL); ok(ret, "WriteFile error %d\n", GetLastError());
- file_size = GetFileSize(hfile, NULL); + SetFilePointer( hfile, idd.ImportAddressTableRVA, NULL, SEEK_SET ); + + for (i = 0; i < sizeof(td)/sizeof(td[0]); i++) + { + /* 0x1a00 is an empty space between delay data and extended delay data, real thunks are not necessary */ + itd32.u1.Function = nt_header.OptionalHeader.ImageBase + 0x1a00 + i * 0x20; + SetLastError(0xdeadbeef); + ret = WriteFile(hfile, &itd32, sizeof(itd32), &dummy, NULL); + ok(ret, "WriteFile error %d\n", GetLastError()); + } + + itd32.u1.Function = 0; SetLastError(0xdeadbeef); - ret = WriteFile(hfile, filler, idd.ImportNameTableRVA - file_size, &dummy, NULL); + ret = WriteFile(hfile, &itd32, sizeof(itd32), &dummy, NULL); ok(ret, "WriteFile error %d\n", GetLastError());
for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)