Alexandre Julliard : user32/tests: Skip message tests if queuing keyboard events doesn't work.

Alexandre Julliard julliard at winehq.org
Tue Feb 17 08:49:14 CST 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Feb 17 14:57:57 2009 +0100

user32/tests: Skip message tests if queuing keyboard events doesn't work.

---

 dlls/user32/tests/msg.c |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 4824f79..584cc4f 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -6283,7 +6283,7 @@ static void test_interthread_messages(void)
     wnd_event.event = CreateEventW(NULL, 0, 0, NULL);
     if (!wnd_event.event)
     {
-        trace("skipping interthread message test under win9x\n");
+        skip("skipping interthread message test under win9x\n");
         return;
     }
 
@@ -6653,6 +6653,11 @@ static void test_accelerators(void)
     keybd_event('N', 0, 0, 0);
     keybd_event('N', 0, KEYEVENTF_KEYUP, 0);
     pump_msg_loop(hwnd, hAccel);
+    if (!sequence_cnt)  /* we didn't get any message */
+    {
+        skip( "queuing key events not supported\n" );
+        goto done;
+    }
     ok_sequence(WmVkN, "VK_N press/release", FALSE);
 
     trace("testing Shift+VK_N press/release\n");
@@ -6770,6 +6775,7 @@ static void test_accelerators(void)
 
     ret = DestroyAcceleratorTable(hAccel);
     ok( ret, "DestroyAcceleratorTable error %d\n", GetLastError());
+    hAccel = 0;
 
     trace("testing Alt press/release\n");
     flush_sequence();
@@ -6814,7 +6820,8 @@ static void test_accelerators(void)
     keybd_event(VK_APPS, 0, KEYEVENTF_KEYUP, 0);
     pump_msg_loop(hwnd, 0);
     ok_sequence(WmVkAppsSeq, "VK_APPS press/release", FALSE);
-
+done:
+    if (hAccel) DestroyAcceleratorTable(hAccel);
     DestroyWindow(hwnd);
 }
 
@@ -8957,6 +8964,11 @@ static void test_PeekMessage(void)
     keybd_event('N', 0, 0, 0);
     keybd_event('N', 0, KEYEVENTF_KEYUP, 0);
     qstatus = GetQueueStatus(qs_all_input);
+    if (!(qstatus & MAKELONG(QS_KEY, QS_KEY)))
+    {
+        skip( "queuing key events not supported\n" );
+        goto done;
+    }
     ok(qstatus == MAKELONG(QS_KEY, QS_KEY),
        "wrong qstatus %08x\n", qstatus);
 
@@ -11354,15 +11366,14 @@ START_TEST(msg)
                                        GetModuleHandleA(0), win_event_proc,
                                        0, GetCurrentThreadId(),
                                        WINEVENT_INCONTEXT);
-	assert(hEvent_hook);
-
-	if (pIsWinEventHookInstalled)
+        if (pIsWinEventHookInstalled && hEvent_hook)
 	{
 	    UINT event;
 	    for (event = EVENT_MIN; event <= EVENT_MAX; event++)
 		ok(pIsWinEventHookInstalled(event), "IsWinEventHookInstalled(%u) failed\n", event);
 	}
     }
+    if (!hEvent_hook) skip( "no win event hook support\n" );
 
     cbt_hook_thread_id = GetCurrentThreadId();
     hCBT_hook = SetWindowsHookExA(WH_CBT, cbt_hook_proc, 0, GetCurrentThreadId());
@@ -11427,7 +11438,7 @@ START_TEST(msg)
     test_SetForegroundWindow();
 
     UnhookWindowsHookEx(hCBT_hook);
-    if (pUnhookWinEvent)
+    if (pUnhookWinEvent && hEvent_hook)
     {
 	ret = pUnhookWinEvent(hEvent_hook);
 	ok( ret, "UnhookWinEvent error %d\n", GetLastError());
@@ -11437,6 +11448,4 @@ START_TEST(msg)
 	   GetLastError() == 0xdeadbeef, /* Win9x */
            "unexpected error %d\n", GetLastError());
     }
-    else
-        skip("UnhookWinEvent is not available\n");
 }




More information about the wine-cvs mailing list