Module: wine Branch: master Commit: d11185a8906ac4bf0dc581e54b0f827abe5618f1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d11185a8906ac4bf0dc581e54b...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Mar 25 09:32:40 2010 +0100
d3d8/tests: Add some message processing to test_wndproc().
Disabled testing the focus and foreground windows after creating the device for the moment.
---
dlls/d3d8/tests/device.c | 29 +++++++++++++++++++++++------ 1 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index c0e1985..cd2df9a 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, tid; + 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) { @@ -1598,10 +1612,13 @@ 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); - tmp = GetForegroundWindow(); - todo_wine ok(tmp == focus_window, "Expected foreground window %p, got %p.\n", focus_window, tmp); + if (0) /* Disabled until we can make this work in a reliable way on Wine. */ + { + tmp = GetFocus(); + ok(tmp == focus_window, "Expected focus %p, got %p.\n", focus_window, tmp); + tmp = GetForegroundWindow(); + ok(tmp == focus_window, "Expected foreground window %p, got %p.\n", focus_window, tmp); + } SetForegroundWindow(focus_window);
filter_messages = focus_window;