[PATCH 1/5] ddraw/tests: Add test for bad size of surface caps in CreateSurface. (try 5)

Stefan Dösinger stefandoesinger at gmx.at
Tue Aug 10 08:34:48 CDT 2010


Diff -u doesn't find any difference between try 4 and try 5, and probably older 
tries. If you're resending them because the older ones weren't applied, that's 
futile - Alexandre is on vacation.

Also it is generally a bad idea to keep resending a unchanged patch. If you 
think the patch has been lost(e.g. Alexandre is waiting for my review and I am 
not at home, etc) it is better to ask on Wine-devel what is up with the 
patches.

Am Sonntag 08 August 2010, 07:09:24 schrieb Oldřich Jedlička:
> ---
>  dlls/ddraw/tests/dsurface.c |  138
> +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 138
> insertions(+), 0 deletions(-)
> 
> diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c
> index 76bfc7e..8cdcd92 100644
> --- a/dlls/ddraw/tests/dsurface.c
> +++ b/dlls/ddraw/tests/dsurface.c
> @@ -25,6 +25,7 @@
> 
>  #include <assert.h>
>  #include "wine/test.h"
> +#include "wine/exception.h"
>  #include "ddraw.h"
>  #include "d3d.h"
>  #include "unknwn.h"
> @@ -3569,6 +3570,142 @@ static void BackBufferAttachmentFlipTest(void)
>      DestroyWindow(window);
>  }
> 
> +static void CreateSurfaceBadCapsSizeTest(void)
> +{
> +    DDSURFACEDESC ddsd_ok;
> +    DDSURFACEDESC ddsd_bad1;
> +    DDSURFACEDESC ddsd_bad2;
> +    DDSURFACEDESC ddsd_bad3;
> +    DDSURFACEDESC ddsd_bad4;
> +    DDSURFACEDESC2 ddsd2_ok;
> +    DDSURFACEDESC2 ddsd2_bad1;
> +    DDSURFACEDESC2 ddsd2_bad2;
> +    DDSURFACEDESC2 ddsd2_bad3;
> +    DDSURFACEDESC2 ddsd2_bad4;
> +    IDirectDrawSurface *surf;
> +    IDirectDrawSurface4 *surf4;
> +    IDirectDrawSurface7 *surf7;
> +    HRESULT hr;
> +    IDirectDraw2 *dd2;
> +    IDirectDraw4 *dd4;
> +    IDirectDraw7 *dd7;
> +
> +    const DWORD caps = DDSCAPS_OFFSCREENPLAIN;
> +
> +    memset(&ddsd_ok, 0, sizeof(ddsd_ok));
> +    ddsd_ok.dwSize = sizeof(ddsd_ok);
> +    ddsd_ok.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
> +    ddsd_ok.dwWidth = 64;
> +    ddsd_ok.dwHeight = 64;
> +    ddsd_ok.ddsCaps.dwCaps = caps;
> +    memcpy(&ddsd_bad1, &ddsd_ok, sizeof(ddsd_bad1));
> +    ddsd_bad1.dwSize--;
> +    memcpy(&ddsd_bad2, &ddsd_ok, sizeof(ddsd_bad2));
> +    ddsd_bad2.dwSize++;
> +    memcpy(&ddsd_bad3, &ddsd_ok, sizeof(ddsd_bad3));
> +    ddsd_bad3.dwSize = 0;
> +    memcpy(&ddsd_bad4, &ddsd_ok, sizeof(ddsd_bad4));
> +    ddsd_bad4.dwSize = sizeof(DDSURFACEDESC2);
> +
> +    memset(&ddsd2_ok, 0, sizeof(ddsd2_ok));
> +    ddsd2_ok.dwSize = sizeof(ddsd2_ok);
> +    ddsd2_ok.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
> +    ddsd2_ok.dwWidth = 64;
> +    ddsd2_ok.dwHeight = 64;
> +    ddsd2_ok.ddsCaps.dwCaps = caps;
> +    memcpy(&ddsd2_bad1, &ddsd2_ok, sizeof(ddsd2_bad1));
> +    ddsd2_bad1.dwSize--;
> +    memcpy(&ddsd2_bad2, &ddsd2_ok, sizeof(ddsd2_bad2));
> +    ddsd2_bad2.dwSize++;
> +    memcpy(&ddsd2_bad3, &ddsd2_ok, sizeof(ddsd2_bad3));
> +    ddsd2_bad3.dwSize = 0;
> +    memcpy(&ddsd2_bad4, &ddsd2_ok, sizeof(ddsd2_bad4));
> +    ddsd2_bad4.dwSize = sizeof(DDSURFACEDESC);
> +
> +    hr = IDirectDraw_CreateSurface(lpDD, &ddsd_ok, &surf, NULL);
> +    ok(SUCCEEDED(hr), "IDirectDraw_CreateSurface failed: 0x%08x\n", hr);
> +    IDirectDrawSurface_Release(surf);
> +
> +    hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad1, &surf, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad2, &surf, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad3, &surf, NULL);
> +    ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface didn't return
> 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw_CreateSurface(lpDD, &ddsd_bad4, &surf, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +
> +    hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw2, (void **)
> &dd2); +    ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed:
> 0x%08x\n", hr); +
> +    hr = IDirectDraw2_CreateSurface(dd2, &ddsd_ok, &surf, NULL);
> +    ok(SUCCEEDED(hr), "IDirectDraw2_CreateSurface failed: 0x%08x\n", hr);
> +    IDirectDrawSurface_Release(surf);
> +
> +    hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad1, &surf, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad2, &surf, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad3, &surf, NULL);
> +    ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface didn't
> return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw2_CreateSurface(dd2, &ddsd_bad4, &surf, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw2_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +
> +    IDirectDraw2_Release(dd2);
> +
> +    hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw4, (void **)
> &dd4); +    ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed:
> 0x%08x\n", hr); +
> +    hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_ok, &surf4, NULL);
> +    ok(SUCCEEDED(hr), "IDirectDraw4_CreateSurface failed: 0x%08x\n", hr);
> +    IDirectDrawSurface4_Release(surf4);
> +
> +    hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad1, &surf4, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad2, &surf4, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad3, &surf4, NULL);
> +    ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface didn't
> return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw4_CreateSurface(dd4, &ddsd2_bad4, &surf4, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw4_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +
> +    IDirectDraw4_Release(dd4);
> +
> +    hr = IDirectDraw_QueryInterface(lpDD, &IID_IDirectDraw7, (void **)
> &dd7); +    ok(SUCCEEDED(hr), "IDirectDraw_QueryInterface failed:
> 0x%08x\n", hr); +
> +    hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_ok, &surf7, NULL);
> +    ok(SUCCEEDED(hr), "IDirectDraw7_CreateSurface failed: 0x%08x\n", hr);
> +    IDirectDrawSurface7_Release(surf7);
> +
> +    hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad1, &surf7, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad2, &surf7, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad3, &surf7, NULL);
> +    ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface didn't
> return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +    hr = IDirectDraw7_CreateSurface(dd7, &ddsd2_bad4, &surf7, NULL);
> +    todo_wine ok(hr == DDERR_INVALIDPARAMS, "IDirectDraw7_CreateSurface
> didn't return 0x%08x, but 0x%08x\n", +       DDERR_INVALIDPARAMS, hr);
> +
> +    IDirectDraw7_Release(dd7);
> +}
> +
>  START_TEST(dsurface)
>  {
>      HRESULT ret;
> @@ -3624,5 +3761,6 @@ START_TEST(dsurface)
>      GetDCFormatTest();
>      BackBufferCreateSurfaceTest();
>      BackBufferAttachmentFlipTest();
> +    CreateSurfaceBadCapsSizeTest();
>      ReleaseDirectDraw();
>  }




More information about the wine-devel mailing list