Alexandre Julliard : user32/tests: Make sure the message test doesn' t hang if the window doesn't have focus.
Alexandre Julliard
julliard at winehq.org
Wed Nov 12 07:18:45 CST 2008
Module: wine
Branch: master
Commit: 466de4f429ae5b336bd7ee3a2f87bf00a00e20ef
URL: http://source.winehq.org/git/wine.git/?a=commit;h=466de4f429ae5b336bd7ee3a2f87bf00a00e20ef
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Nov 12 12:36:22 2008 +0100
user32/tests: Make sure the message test doesn't hang if the window doesn't have focus.
---
dlls/user32/tests/msg.c | 93 ++++++++++++++++++++++++++++-------------------
1 files changed, 55 insertions(+), 38 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 84fda56..2c3dea5 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -9220,19 +9220,25 @@ todo_wine {
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);
+ if (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);
+ if (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);
@@ -9242,19 +9248,25 @@ todo_wine {
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);
+ if (qstatus & (QS_KEY << 16))
+ {
+ 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);
+ if (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);
@@ -9271,21 +9283,26 @@ todo_wine {
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);
+ if (qstatus & (QS_KEY << 16))
+ {
+ 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);
+ }
+ if (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