Module: wine Branch: master Commit: 42470bae678508490d2b2c62f59d58ede72c9797 URL: http://source.winehq.org/git/wine.git/?a=commit;h=42470bae678508490d2b2c62f5...
Author: Stefan Dösinger stefan@codeweavers.com Date: Tue Dec 3 13:44:37 2013 +0100
ddraw/tests: Test SetSurfaceDesc and Lock interaction.
---
dlls/ddraw/tests/ddraw2.c | 14 ++++++++++++++ dlls/ddraw/tests/ddraw4.c | 14 ++++++++++++++ dlls/ddraw/tests/ddraw7.c | 15 +++++++++++++++ 3 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index 209a473..417e0be 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -4467,7 +4467,21 @@ static void test_set_surface_desc(void) /* Redundantly setting the same lpSurface is not an error. */ hr = IDirectDrawSurface3_SetSurfaceDesc(surface3, &ddsd, 0); ok(SUCCEEDED(hr), "Failed to set surface desc, hr %#x.\n", hr); + hr = IDirectDrawSurface3_GetSurfaceDesc(surface3, &ddsd); + ok(SUCCEEDED(hr), "Failed to get surface desc, hr %#x.\n", hr); + ok(!(ddsd.dwFlags & DDSD_LPSURFACE), "DDSD_LPSURFACE is set.\n"); + ok(ddsd.lpSurface == NULL, "lpSurface is %p, expected NULL.\n", ddsd.lpSurface); + + hr = IDirectDrawSurface3_Lock(surface3, NULL, &ddsd, 0, NULL); + ok(SUCCEEDED(hr), "Failed to lock surface, hr %#x.\n", hr); + ok(!(ddsd.dwFlags & DDSD_LPSURFACE), "DDSD_LPSURFACE is set.\n"); + ok(ddsd.lpSurface == data, "lpSurface is %p, expected %p.\n", data, data); + hr = IDirectDrawSurface3_Unlock(surface3, NULL); + ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x.\n", hr);
+ reset_ddsd(&ddsd); + ddsd.dwFlags = DDSD_LPSURFACE; + ddsd.lpSurface = data; hr = IDirectDrawSurface3_SetSurfaceDesc(surface3, &ddsd, 1); ok(hr == DDERR_INVALIDPARAMS, "SetSurfaceDesc with flags=1 returned %#x.\n", hr);
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index e7beb3f..b1b01bb 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -5068,7 +5068,21 @@ static void test_set_surface_desc(void) /* Redundantly setting the same lpSurface is not an error. */ hr = IDirectDrawSurface4_SetSurfaceDesc(surface, &ddsd, 0); ok(SUCCEEDED(hr), "Failed to set surface desc, hr %#x.\n", hr); + hr = IDirectDrawSurface4_GetSurfaceDesc(surface, &ddsd); + ok(SUCCEEDED(hr), "Failed to get surface desc, hr %#x.\n", hr); + ok(!(ddsd.dwFlags & DDSD_LPSURFACE), "DDSD_LPSURFACE is set.\n"); + ok(ddsd.lpSurface == NULL, "lpSurface is %p, expected NULL.\n", ddsd.lpSurface); + + hr = IDirectDrawSurface4_Lock(surface, NULL, &ddsd, 0, NULL); + ok(SUCCEEDED(hr), "Failed to lock surface, hr %#x.\n", hr); + ok(!(ddsd.dwFlags & DDSD_LPSURFACE), "DDSD_LPSURFACE is set.\n"); + ok(ddsd.lpSurface == data, "lpSurface is %p, expected %p.\n", data, data); + hr = IDirectDrawSurface4_Unlock(surface, NULL); + ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x.\n", hr);
+ reset_ddsd(&ddsd); + ddsd.dwFlags = DDSD_LPSURFACE; + ddsd.lpSurface = data; hr = IDirectDrawSurface4_SetSurfaceDesc(surface, &ddsd, 1); ok(hr == DDERR_INVALIDPARAMS, "SetSurfaceDesc with flags=1 returned %#x.\n", hr);
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 76ff437..fe1d35f 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -4956,6 +4956,21 @@ static void test_set_surface_desc(void) hr = IDirectDrawSurface7_SetSurfaceDesc(surface, &ddsd, 0); ok(SUCCEEDED(hr), "Failed to set surface desc, hr %#x.\n", hr);
+ hr = IDirectDrawSurface7_GetSurfaceDesc(surface, &ddsd); + ok(SUCCEEDED(hr), "Failed to get surface desc, hr %#x.\n", hr); + ok(!(ddsd.dwFlags & DDSD_LPSURFACE), "DDSD_LPSURFACE is set.\n"); + ok(ddsd.lpSurface == NULL, "lpSurface is %p, expected NULL.\n", ddsd.lpSurface); + + hr = IDirectDrawSurface7_Lock(surface, NULL, &ddsd, 0, NULL); + ok(SUCCEEDED(hr), "Failed to lock surface, hr %#x.\n", hr); + ok(!(ddsd.dwFlags & DDSD_LPSURFACE), "DDSD_LPSURFACE is set.\n"); + ok(ddsd.lpSurface == data, "lpSurface is %p, expected %p.\n", data, data); + hr = IDirectDrawSurface7_Unlock(surface, NULL); + ok(SUCCEEDED(hr), "Failed to unlock surface, hr %#x.\n", hr); + + reset_ddsd(&ddsd); + ddsd.dwFlags = DDSD_LPSURFACE; + ddsd.lpSurface = data; hr = IDirectDrawSurface7_SetSurfaceDesc(surface, &ddsd, 1); ok(hr == DDERR_INVALIDPARAMS, "SetSurfaceDesc with flags=1 returned %#x.\n", hr);