[PATCH 5/5] ddraw/tests: Test SetSurfaceDesc and Lock interaction.
Stefan Dösinger
stefan at codeweavers.com
Tue Dec 3 06:44:37 CST 2013
---
dlls/ddraw/tests/ddraw2.c | 14 ++++++++++++++
dlls/ddraw/tests/ddraw4.c | 14 ++++++++++++++
dlls/ddraw/tests/ddraw7.c | 15 +++++++++++++++
3 files changed, 43 insertions(+)
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);
--
1.8.3.2
More information about the wine-patches
mailing list