From: Rémi Bernon rbernon@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54012 --- dlls/kernel32/tests/heap.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c index 3350f0853ab..cb3aca1b3a0 100644 --- a/dlls/kernel32/tests/heap.c +++ b/dlls/kernel32/tests/heap.c @@ -1754,13 +1754,18 @@ static void test_GlobalAlloc(void) ok( !is_mem_entry( tmp_mem ), "unexpected moveable %p\n", tmp_mem ); if (flags == GMEM_MODIFY) ok( tmp_mem == mem, "GlobalReAlloc returned %p\n", tmp_mem ); else if (flags != GMEM_MOVEABLE) ok( !tmp_mem || broken( tmp_mem == mem ) /* w8 */, "GlobalReAlloc succeeded\n" ); - else todo_wine ok( tmp_mem != mem, "GlobalReAlloc returned %p\n", tmp_mem ); + else + { + ok( !!tmp_mem, "GlobalReAlloc failed, error %lu\n", GetLastError() ); + todo_wine + ok( tmp_mem != mem || broken( tmp_mem == mem ) /* w7 */, "GlobalReAlloc returned %p\n", tmp_mem ); + } } else { ok( is_mem_entry( tmp_mem ), "unexpected moveable %p\n", tmp_mem ); entry = *mem_entry_from_HANDLE( tmp_mem ); - ok( entry.ptr == ptr, "got ptr %p was %p\n", entry.ptr, ptr ); + ok( entry.ptr == ptr || broken( !!entry.ptr ) /* w7 */, "got ptr %p was %p\n", entry.ptr, ptr ); if (flags & GMEM_DISCARDABLE) ok( (entry.flags & 0x7fff) == 0x7, "got flags %#Ix\n", entry.flags ); else ok( (entry.flags & 0x7fff) == 0x3, "got flags %#Ix\n", entry.flags ); } @@ -1785,13 +1790,18 @@ static void test_GlobalAlloc(void) ok( !is_mem_entry( tmp_mem ), "unexpected moveable %p\n", tmp_mem ); if (flags == GMEM_MODIFY) ok( tmp_mem == mem, "GlobalReAlloc returned %p\n", tmp_mem ); else if (flags != GMEM_MOVEABLE) ok( !tmp_mem || broken( tmp_mem == mem ) /* w8 */, "GlobalReAlloc succeeded\n" ); - else todo_wine ok( tmp_mem != mem, "GlobalReAlloc returned %p\n", tmp_mem ); + else + { + ok( !!tmp_mem, "GlobalReAlloc failed, error %lu\n", GetLastError() ); + todo_wine + ok( tmp_mem != mem || broken( tmp_mem == mem ) /* w7 */, "GlobalReAlloc returned %p\n", tmp_mem ); + } } else { ok( is_mem_entry( tmp_mem ), "unexpected moveable %p\n", tmp_mem ); entry = *mem_entry_from_HANDLE( tmp_mem ); - ok( entry.ptr == ptr, "got ptr %p was %p\n", entry.ptr, ptr ); + ok( entry.ptr == ptr || broken( !!entry.ptr ) /* w7 */, "got ptr %p was %p\n", entry.ptr, ptr ); if (flags & GMEM_DISCARDABLE) ok( (entry.flags & 0x7fff) == 0x7, "got flags %#Ix\n", entry.flags ); else ok( (entry.flags & 0x7fff) == 0x3, "got flags %#Ix\n", entry.flags ); }
Actually I think all the broken failures may just be related to the LFH more or less randomly triggering for some block size. Also related to https://bugs.winehq.org/show_bug.cgi?id=53996.
This merge request was closed by Rémi Bernon.