[PATCH 09/12] user32/tests: Tweak test_PeekMessage expectations for w1064v1809.

Rémi Bernon rbernon at codeweavers.com
Tue Nov 12 14:42:02 CST 2019


This sometimes fails on the testbot, usually on the non-us VMs.

  https://testbot.winehq.org/JobDetails.pl?Key=59888#k113

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/user32/tests/msg.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 3a92ec24276..c73f9ac36b9 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -11894,7 +11894,8 @@ static void test_PeekMessage(void)
     PostMessageA(info.hwnd, WM_CHAR, 'z', 0);
     qstatus = GetQueueStatus(qs_all_input);
     ok(qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY) ||
-       qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY|QS_SENDMESSAGE),
+       qstatus == MAKELONG(QS_POSTMESSAGE, QS_POSTMESSAGE|QS_KEY|QS_SENDMESSAGE) ||
+       broken(qstatus == MAKELONG(QS_POSTMESSAGE|QS_SENDMESSAGE, QS_POSTMESSAGE|QS_KEY|QS_SENDMESSAGE)) /* sometimes on non-us w1064v1809 */,
        "wrong qstatus %08x\n", qstatus);
 
     InvalidateRect(info.hwnd, NULL, FALSE);
@@ -11975,6 +11976,10 @@ static void test_PeekMessage(void)
 
     msg.message = 0;
     ret = PeekMessageA(&msg, 0, 0, 0, PM_REMOVE | PM_QS_PAINT);
+    /* GetQueueStatus documentation says that it's not a guarantee that PeekMessage will succeed,
+     * it indeed fails from time to time on the non-us w1064v1809 testbot VMs, let's try again */
+    if (!ret && GetQueueStatus(qs_all_input) == MAKELONG(0, QS_PAINT|QS_KEY))
+        ret = PeekMessageA(&msg, 0, 0, 0, PM_REMOVE | PM_QS_PAINT);
     ok(ret && msg.message == WM_PAINT,
        "got %d and %04x instead of TRUE and WM_PAINT\n", ret, msg.message);
     DispatchMessageA(&msg);
-- 
2.24.0.rc2




More information about the wine-devel mailing list