[PATCH v3 3/3] gdi32/tests: Fix some bitmap test failures on Windows 2008+.

Huw Davies huw at codeweavers.com
Tue Nov 12 03:20:37 CST 2019


On Sun, Nov 10, 2019 at 12:44:12PM +0100, Sven Baars wrote:
> Signed-off-by: Sven Baars <sven.wine at gmail.com>
> ---
> v3: Skip most of the SetDIBitsToDevice RLE8 tests on Windows 2008 since there
> it almost always doesn't do anything.
> 
>  dlls/gdi32/tests/bitmap.c | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/dlls/gdi32/tests/bitmap.c b/dlls/gdi32/tests/bitmap.c
> index d651765006..bac34d0b69 100644
> --- a/dlls/gdi32/tests/bitmap.c
> +++ b/dlls/gdi32/tests/bitmap.c
> @@ -5532,14 +5532,23 @@ static void test_SetDIBitsToDevice_RLE8(void)
>      info->bmiHeader.biWidth = 2;
>      ret = SetDIBitsToDevice( hdc, 0, 0, 8, 8, 0, 0, 0, 8, rle8_data, info, DIB_RGB_COLORS );
>      ok( ret == 8, "got %d\n", ret );
> -    for (i = 0; i < 64; i++) ok( dib_bits[i] == bottom_up[i], "%d: got %08x\n", i, dib_bits[i] );
> +    if (dib_bits[0] == 0xaaaaaaaa)
> +    {
> +        win_skip("SetDIBitsToDevice is broken on Windows 2008.\n");
> +        goto cleanup;
> +    }
> +    for (i = 0; i < 64; i += 8)
> +    {
> +        ok( dib_bits[i] == bottom_up[i], "%d: got %08x\n", i, dib_bits[i] );
> +        ok( dib_bits[i+1] == bottom_up[i+1], "%d: got %08x\n", i+1, dib_bits[i+1] );
> +    }
>      memset( dib_bits, 0xaa, 64 * 4 );
>  
>      info->bmiHeader.biWidth  = 8;
>      info->bmiHeader.biHeight = 2;
>      ret = SetDIBitsToDevice( hdc, 0, 0, 8, 8, 0, 0, 0, 8, rle8_data, info, DIB_RGB_COLORS );
>      ok( ret == 2, "got %d\n", ret );
> -    for (i = 0; i < 64; i++) ok( dib_bits[i] == bottom_up[i], "%d: got %08x\n", i, dib_bits[i] );
> +    for (i = 0; i < 16; i++) ok( dib_bits[i] == bottom_up[i], "%d: got %08x\n", i, dib_bits[i] );
>      memset( dib_bits, 0xaa, 64 * 4 );
>  
>      info->bmiHeader.biHeight = 9;
> @@ -5671,6 +5680,7 @@ static void test_SetDIBitsToDevice_RLE8(void)
>      for (i = 40; i < 64; i++) ok( dib_bits[i] == 0xaaaaaaaa, "%d: got %08x\n", i, dib_bits[i] );
>      memset( dib_bits, 0xaa, 64 * 4 );
>  
> +cleanup:
>      DeleteDC( hdc );
>      DeleteObject( dib );
>      HeapFree( GetProcessHeap(), 0, info );

Could you send this in without the hunk below and then send that as a separate patch?

> @@ -5772,7 +5782,8 @@ static void test_D3DKMTCreateDCFromMemory( void )
>          create_desc.Height = 7;
>          create_desc.Width = 0;
>          status = pD3DKMTCreateDCFromMemory( &create_desc );
> -        ok(status == test_data[i].status, "%s: Got unexpected status %#x, expected %#x.\n",
> +        ok(status == test_data[i].status || broken(status == STATUS_INVALID_PARAMETER) /* Win7+ */,
> +           "%s: Got unexpected status %#x, expected %#x.\n",
>             test_data[i].name, status, test_data[i].status);
>          if (status == STATUS_SUCCESS)
>          {

Huw.



More information about the wine-devel mailing list