Henri Verbeet : ddraw: Add a small tests for SetCooperativeLevel() calls with different windows.
Alexandre Julliard
julliard at winehq.org
Tue Jan 15 13:46:17 CST 2013
Module: wine
Branch: master
Commit: ae725df54a4ea8c414043b252929bd85f7ce33f0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae725df54a4ea8c414043b252929bd85f7ce33f0
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Jan 15 08:46:53 2013 +0100
ddraw: Add a small tests for SetCooperativeLevel() calls with different windows.
In particular, test that the windows aren't destroyed by accident.
---
dlls/ddraw/tests/ddraw1.c | 31 +++++++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw2.c | 31 +++++++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw4.c | 31 +++++++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw7.c | 31 +++++++++++++++++++++++++++++++
4 files changed, 124 insertions(+), 0 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index cf83b98..a37e0b7 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -2629,6 +2629,36 @@ static void test_coop_level_surf_create(void)
IDirectDraw_Release(ddraw);
}
+static void test_coop_level_multi_window(void)
+{
+ HWND window1, window2;
+ IDirectDraw *ddraw;
+ HRESULT hr;
+
+ window1 = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ if (!(ddraw = create_ddraw()))
+ {
+ skip("Failed to create a ddraw object, skipping test.\n");
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+ return;
+ }
+
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ todo_wine ok(IsWindow(window1), "Window 1 was destroyed.\n");
+ ok(IsWindow(window2), "Window 2 was destroyed.\n");
+
+ IDirectDraw_Release(ddraw);
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+}
+
START_TEST(ddraw1)
{
test_coop_level_create_device_window();
@@ -2649,4 +2679,5 @@ START_TEST(ddraw1)
test_coop_level_mode_set_multi();
test_initialize();
test_coop_level_surf_create();
+ test_coop_level_multi_window();
}
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 303c634..e475f5b 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -2748,6 +2748,36 @@ static void test_coop_level_surf_create(void)
IDirectDraw2_Release(ddraw);
}
+static void test_coop_level_multi_window(void)
+{
+ HWND window1, window2;
+ IDirectDraw2 *ddraw;
+ HRESULT hr;
+
+ window1 = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ if (!(ddraw = create_ddraw()))
+ {
+ skip("Failed to create a ddraw object, skipping test.\n");
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+ return;
+ }
+
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ todo_wine ok(IsWindow(window1), "Window 1 was destroyed.\n");
+ ok(IsWindow(window2), "Window 2 was destroyed.\n");
+
+ IDirectDraw2_Release(ddraw);
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+}
+
START_TEST(ddraw2)
{
test_coop_level_create_device_window();
@@ -2770,4 +2800,5 @@ START_TEST(ddraw2)
test_coop_level_mode_set_multi();
test_initialize();
test_coop_level_surf_create();
+ test_coop_level_multi_window();
}
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 2e9c845..82cd5d5 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -2935,6 +2935,36 @@ static void test_vb_discard(void)
DestroyWindow(window);
}
+static void test_coop_level_multi_window(void)
+{
+ HWND window1, window2;
+ IDirectDraw4 *ddraw;
+ HRESULT hr;
+
+ window1 = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ if (!(ddraw = create_ddraw()))
+ {
+ skip("Failed to create a ddraw object, skipping test.\n");
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+ return;
+ }
+
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ todo_wine ok(IsWindow(window1), "Window 1 was destroyed.\n");
+ ok(IsWindow(window2), "Window 2 was destroyed.\n");
+
+ IDirectDraw4_Release(ddraw);
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+}
+
START_TEST(ddraw4)
{
test_process_vertices();
@@ -2959,4 +2989,5 @@ START_TEST(ddraw4)
test_initialize();
test_coop_level_surf_create();
test_vb_discard();
+ test_coop_level_multi_window();
}
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 2b7e075..cd22e0c 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -2744,6 +2744,36 @@ static void test_vb_discard(void)
DestroyWindow(window);
}
+static void test_coop_level_multi_window(void)
+{
+ HWND window1, window2;
+ IDirectDraw7 *ddraw;
+ HRESULT hr;
+
+ window1 = CreateWindowA("static", "ddraw_test1", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ window2 = CreateWindowA("static", "ddraw_test2", WS_OVERLAPPEDWINDOW,
+ 0, 0, 640, 480, 0, 0, 0, 0);
+ if (!(ddraw = create_ddraw()))
+ {
+ skip("Failed to create a ddraw object, skipping test.\n");
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+ return;
+ }
+
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window1, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window2, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "Failed to set cooperative level, hr %#x.\n", hr);
+ todo_wine ok(IsWindow(window1), "Window 1 was destroyed.\n");
+ ok(IsWindow(window2), "Window 2 was destroyed.\n");
+
+ IDirectDraw7_Release(ddraw);
+ DestroyWindow(window2);
+ DestroyWindow(window1);
+}
+
START_TEST(ddraw7)
{
HMODULE module = GetModuleHandleA("ddraw.dll");
@@ -2775,4 +2805,5 @@ START_TEST(ddraw7)
test_initialize();
test_coop_level_surf_create();
test_vb_discard();
+ test_coop_level_multi_window();
}
More information about the wine-cvs
mailing list