=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: ddraw/tests: Test SetSurfaceDesc and Lock interaction.

Alexandre Julliard julliard at winehq.org
Tue Dec 3 13:46:36 CST 2013


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

Author: Stefan Dösinger <stefan at 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);
 




More information about the wine-cvs mailing list