Alexandre Julliard : gdi32/tests: Fix some test failures on old Windows versions.

Alexandre Julliard julliard at winehq.org
Tue Dec 13 13:01:24 CST 2011


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Dec 13 12:24:33 2011 +0100

gdi32/tests: Fix some test failures on old Windows versions.

---

 dlls/gdi32/tests/bitmap.c  |    3 ++-
 dlls/gdi32/tests/dib.c     |    3 ++-
 dlls/gdi32/tests/palette.c |   41 +++++++++++++++++++++++++----------------
 3 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/dlls/gdi32/tests/bitmap.c b/dlls/gdi32/tests/bitmap.c
index 6e8e1d4..ba8ad84 100644
--- a/dlls/gdi32/tests/bitmap.c
+++ b/dlls/gdi32/tests/bitmap.c
@@ -4998,7 +4998,8 @@ static void test_SetDIBitsToDevice(void)
         int ent = (255 - idx) % pal->palNumEntries;
         DWORD expect = idx >= info->bmiHeader.biClrUsed ? 0 :
                         (palent[ent].peRed << 16 | palent[ent].peGreen << 8 | palent[ent].peBlue);
-        ok( dib_bits[i] == expect, "%d: got %08x instead of %08x\n", i, dib_bits[i], expect );
+        ok( dib_bits[i] == expect || broken(dib_bits[i] == 0),
+            "%d: got %08x instead of %08x\n", i, dib_bits[i], expect );
     }
     memset( dib_bits, 0xaa, 64 * 4 );
 
diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c
index 5d1eb8b..c39463b 100644
--- a/dlls/gdi32/tests/dib.c
+++ b/dlls/gdi32/tests/dib.c
@@ -953,6 +953,7 @@ static const char *sha1_graphics_1[] =
     "c14832e69ec3585c15987b3d69d5007236fa9814",
     "e44ea620b0c47125a34193537ab9d219a52ad028",
     "ef2db9fb75a672f69bab88e5d08fe64f50ec2bc4",
+    "df81db2a9b3942a82e0dc5e57247b642f9b42702",
     "8819bf7a43295161fe045a42936000b3a51fe200",
     "e08dbc26469c229f75ccbf1a38a133401f270b84",
     "d1e6091caa4482d3142df3b958606c41ebf4698e",
@@ -1647,7 +1648,7 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh
         }
     }
 
-    compare_hash_broken_todo(bmi, bits, sha1, "1 bpp ddb brush patblt", dib_is_1bpp ? 2 : 0, dib_is_1bpp);
+    compare_hash_broken_todo(bmi, bits, sha1, "1 bpp ddb brush patblt", dib_is_1bpp ? 3 : 0, dib_is_1bpp);
     memset(bits, 0xcc, dib_size);
 
     DeleteObject(bmp);
diff --git a/dlls/gdi32/tests/palette.c b/dlls/gdi32/tests/palette.c
index 4f14d7a..ebdc4e4 100644
--- a/dlls/gdi32/tests/palette.c
+++ b/dlls/gdi32/tests/palette.c
@@ -159,25 +159,34 @@ static void test_halftone_palette(void)
 
     pal = CreateHalftonePalette( hdc );
     count = GetPaletteEntries( pal, 0, 256, entries );
-    ok( count == 256 || broken(count == 20), /* nt 4 */
+    ok( count == 256 || broken(count <= 20), /* nt 4 */
         "wrong size %u\n", count );
 
     /* first and last 10 match the default palette */
-    for (i = 0; i < 10; i++)
-        ok( entries[i].peRed   == defpal[i].peRed &&
-            entries[i].peGreen == defpal[i].peGreen &&
-            entries[i].peBlue  == defpal[i].peBlue &&
-            !entries[i].peFlags,
-            "%u: wrong color %02x,%02x,%02x,%02x\n", i,
-            entries[i].peRed, entries[i].peGreen, entries[i].peBlue, entries[i].peFlags );
-    for (i = count - 10; i < count; i++)
-        ok( entries[i].peRed   == defpal[i - count + 20].peRed &&
-            entries[i].peGreen == defpal[i - count + 20].peGreen &&
-            entries[i].peBlue  == defpal[i - count + 20].peBlue &&
-            !entries[i].peFlags,
-            "%u: wrong color %02x,%02x,%02x,%02x\n", i,
-            entries[i].peRed, entries[i].peGreen, entries[i].peBlue, entries[i].peFlags );
-
+    if (count >= 20)
+    {
+        for (i = 0; i < 10; i++)
+        {
+            ok( entries[i].peRed   == defpal[i].peRed &&
+                entries[i].peGreen == defpal[i].peGreen &&
+                entries[i].peBlue  == defpal[i].peBlue &&
+                !entries[i].peFlags,
+                "%u: wrong color %02x,%02x,%02x,%02x instead of %02x,%02x,%02x\n", i,
+                entries[i].peRed, entries[i].peGreen, entries[i].peBlue, entries[i].peFlags,
+                defpal[i].peRed, defpal[i].peGreen, defpal[i].peBlue );
+        }
+        for (i = count - 10; i < count; i++)
+        {
+            int idx = i - count + 20;
+            ok( entries[i].peRed   == defpal[idx].peRed &&
+                entries[i].peGreen == defpal[idx].peGreen &&
+                entries[i].peBlue  == defpal[idx].peBlue &&
+                !entries[i].peFlags,
+                "%u: wrong color %02x,%02x,%02x,%02x instead of %02x,%02x,%02x\n", i,
+                entries[i].peRed, entries[i].peGreen, entries[i].peBlue, entries[i].peFlags,
+                defpal[idx].peRed, defpal[idx].peGreen, defpal[idx].peBlue );
+        }
+    }
     DeleteObject( pal );
     ReleaseDC( 0, hdc );
 }




More information about the wine-cvs mailing list