[PATCH 1/2] d3d8/tests: Add some message processing to test_wndproc().
Henri Verbeet
hverbeet at codeweavers.com
Fri Mar 19 08:33:18 CDT 2010
---
dlls/d3d8/tests/device.c | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c
index c6613ca..5633f99 100644
--- a/dlls/d3d8/tests/device.c
+++ b/dlls/d3d8/tests/device.c
@@ -1525,8 +1525,19 @@ static DWORD WINAPI wndproc_thread(void *param)
ret = SetEvent(p->window_created);
ok(ret, "SetEvent failed, last error %#x.\n", GetLastError());
- res = WaitForSingleObject(p->test_finished, INFINITE);
- ok(res == WAIT_OBJECT_0, "Wait failed (%#x), last error %#x.\n", res, GetLastError());
+ for (;;)
+ {
+ MSG msg;
+
+ while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
+ res = WaitForSingleObject(p->test_finished, 100);
+ if (res == WAIT_OBJECT_0) break;
+ if (res != WAIT_TIMEOUT)
+ {
+ ok(0, "Wait failed (%#x), last error %#x.\n", res, GetLastError());
+ break;
+ }
+ }
DestroyWindow(p->dummy_window);
@@ -1544,6 +1555,7 @@ static void test_wndproc(void)
LONG_PTR proc;
ULONG ref;
DWORD res;
+ MSG msg;
if (!(d3d8 = pDirect3DCreate8(D3D_SDK_VERSION)))
{
@@ -1589,6 +1601,8 @@ static void test_wndproc(void)
expect_message.window = focus_window;
expect_message.message = WM_SETFOCUS;
+ while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
+
device = create_device(d3d8, device_window, focus_window, FALSE);
if (!device)
{
@@ -1599,9 +1613,9 @@ static void test_wndproc(void)
ok(!expect_message.message, "Expected message %#x for window %p, but didn't receive it.\n",
expect_message.message, expect_message.window);
tmp = GetFocus();
- todo_wine ok(tmp == focus_window, "Expected focus %p, got %p.\n", focus_window, tmp);
+ ok(tmp == focus_window, "Expected focus %p, got %p.\n", focus_window, tmp);
tmp = GetForegroundWindow();
- todo_wine ok(tmp == focus_window, "Expected foreground window %p, got %p.\n", focus_window, tmp);
+ ok(tmp == focus_window, "Expected foreground window %p, got %p.\n", focus_window, tmp);
SetForegroundWindow(focus_window);
filter_messages = focus_window;
--
1.6.4.4
More information about the wine-patches
mailing list