Alexandre Julliard : user32: Add a bunch of tests for GetQueueStatus and GetMessage combinations.

Alexandre Julliard julliard at winehq.org
Wed Oct 29 09:39:31 CDT 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Oct 29 12:13:57 2008 +0100

user32: Add a bunch of tests for GetQueueStatus and GetMessage combinations.

---

 dlls/user32/tests/msg.c |   76 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 4cb8d61..c30331f 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -9212,6 +9212,82 @@ todo_wine {
     ok(qstatus == 0,
        "wrong qstatus %08x\n", qstatus);
 
+    /* some GetMessage tests */
+
+    keybd_event('N', 0, 0, 0);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_KEY, QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    PostMessageA(info.hwnd, WM_CHAR, 'z', 0);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    ret = GetMessageA( &msg, 0, 0, 0 );
+    ok(ret && msg.message == WM_CHAR && msg.wParam == 'z',
+       "got %d and %04x wParam %08lx instead of TRUE and WM_CHAR wParam 'z'\n",
+       ret, msg.message, msg.wParam);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(0, QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    ret = GetMessageA( &msg, 0, 0, 0 );
+    ok(ret && msg.message == WM_KEYDOWN && msg.wParam == 'N',
+       "got %d and %04x wParam %08lx instead of TRUE and WM_KEYDOWN wParam 'N'\n",
+       ret, msg.message, msg.wParam);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == 0, "wrong qstatus %08x\n", qstatus);
+
+    keybd_event('N', 0, 0, 0);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_KEY, QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    PostMessageA(info.hwnd, WM_CHAR, 'z', 0);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    ret = GetMessageA( &msg, 0, WM_KEYDOWN, WM_KEYUP );
+    ok(ret && msg.message == WM_KEYDOWN && msg.wParam == 'N',
+       "got %d and %04x wParam %08lx instead of TRUE and WM_KEYDOWN wParam 'N'\n",
+       ret, msg.message, msg.wParam);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(0, QS_POSTMESSAGE), "wrong qstatus %08x\n", qstatus);
+
+    ret = GetMessageA( &msg, 0, WM_CHAR, WM_CHAR );
+    ok(ret && msg.message == WM_CHAR && msg.wParam == 'z',
+       "got %d and %04x wParam %08lx instead of TRUE and WM_CHAR wParam 'z'\n",
+       ret, msg.message, msg.wParam);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == 0, "wrong qstatus %08x\n", qstatus);
+
+    keybd_event('N', 0, KEYEVENTF_KEYUP, 0);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_KEY, QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    PostMessageA(info.hwnd, WM_CHAR, 'z', 0);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY), "wrong qstatus %08x\n", qstatus);
+
+    trace("signalling to send message\n");
+    SetEvent(info.hevent[EV_SENDMSG]);
+    WaitForSingleObject(info.hevent[EV_ACK], INFINITE);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(QS_SENDMESSAGE, QS_SENDMESSAGE|QS_POSTMESSAGE|QS_KEY),
+       "wrong qstatus %08x\n", qstatus);
+
+    ret = GetMessageA( &msg, 0, WM_KEYDOWN, WM_KEYUP );
+    ok(ret && msg.message == WM_KEYUP && msg.wParam == 'N',
+       "got %d and %04x wParam %08lx instead of TRUE and WM_KEYDOWN wParam 'N'\n",
+       ret, msg.message, msg.wParam);
+    ok_sequence(WmUser, "WmUser", FALSE);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == MAKELONG(0, QS_POSTMESSAGE), "wrong qstatus %08x\n", qstatus);
+
+    ret = GetMessageA( &msg, 0, WM_CHAR, WM_CHAR );
+    ok(ret && msg.message == WM_CHAR && msg.wParam == 'z',
+       "got %d and %04x wParam %08lx instead of TRUE and WM_CHAR wParam 'z'\n",
+       ret, msg.message, msg.wParam);
+    qstatus = GetQueueStatus(qs_all_input);
+    ok(qstatus == 0, "wrong qstatus %08x\n", qstatus);
+
 done:
     trace("signalling to exit\n");
     SetEvent(info.hevent[EV_STOP]);




More information about the wine-cvs mailing list