From 880f78574721c8780cf6619db08fc6ae8355a3f9 Mon Sep 17 00:00:00 2001 From: Paul Vriens Date: Wed, 8 Oct 2008 11:20:09 +0200 Subject: [PATCH] gdi32/tests: Skip some tests on Win9x/WinMe. --- dlls/gdi32/tests/bitmap.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/dlls/gdi32/tests/bitmap.c b/dlls/gdi32/tests/bitmap.c index 25f1fe779ab..3d801e7f706 100644 --- a/dlls/gdi32/tests/bitmap.c +++ b/dlls/gdi32/tests/bitmap.c @@ -1737,22 +1737,29 @@ static void test_GetDIBits_BI_BITFIELDS(void) memset(dibinfo, 0, sizeof(dibinfo_buf)); dibinfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); dibinfo->bmiHeader.biSizeImage = 0xdeadbeef; + SetLastError(0xdeadbeef); ret = GetDIBits(hdc, hbm, 0, 0, bits, dibinfo, DIB_RGB_COLORS); - - ok( !bitmasks[0], "red mask is set\n" ); - ok( !bitmasks[1], "green mask is set\n" ); - ok( !bitmasks[2], "blue mask is set\n" ); - ok( dibinfo->bmiHeader.biSizeImage != 0xdeadbeef, "size image not set\n" ); - - memset(bitmasks, 0, 3*sizeof(DWORD)); - dibinfo->bmiHeader.biSizeImage = 0xdeadbeef; - ret = GetDIBits(hdc, hbm, 0, 0, bits, dibinfo, DIB_RGB_COLORS); - ok(ret == 1, "GetDIBits failed ret %u err %u\n",ret,GetLastError()); - - ok( bitmasks[0] != 0, "red mask is not set\n" ); - ok( bitmasks[1] != 0, "green mask is not set\n" ); - ok( bitmasks[2] != 0, "blue mask is not set\n" ); - ok( dibinfo->bmiHeader.biSizeImage != 0xdeadbeef, "size image not set\n" ); + if (ret == 0 && GetLastError() == ERROR_INVALID_PARAMETER) + win_skip("Win9x/WinMe doesn't handle 0 for the number of scan lines\n"); + else + { + ok(ret == 1, "GetDIBits failed ret %u err %u\n",ret,GetLastError()); + + ok( !bitmasks[0], "red mask is set\n" ); + ok( !bitmasks[1], "green mask is set\n" ); + ok( !bitmasks[2], "blue mask is set\n" ); + ok( dibinfo->bmiHeader.biSizeImage != 0xdeadbeef, "size image not set\n" ); + + memset(bitmasks, 0, 3*sizeof(DWORD)); + dibinfo->bmiHeader.biSizeImage = 0xdeadbeef; + ret = GetDIBits(hdc, hbm, 0, 0, bits, dibinfo, DIB_RGB_COLORS); + ok(ret == 1, "GetDIBits failed ret %u err %u\n",ret,GetLastError()); + + ok( bitmasks[0] != 0, "red mask is not set\n" ); + ok( bitmasks[1] != 0, "green mask is not set\n" ); + ok( bitmasks[2] != 0, "blue mask is not set\n" ); + ok( dibinfo->bmiHeader.biSizeImage != 0xdeadbeef, "size image not set\n" ); + } } else skip("not in 16 bpp BI_BITFIELDS mode, skipping that test\n"); -- 2.11.4.GIT