Alexandre Julliard : user32/tests: Skip some input tests if we fail to queue keyboard events.

Alexandre Julliard julliard at winehq.org
Fri Feb 20 12:49:53 CST 2009


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Feb 20 16:56:07 2009 +0100

user32/tests: Skip some input tests if we fail to queue keyboard events.

---

 dlls/user32/tests/input.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 584c23a..f025db7 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -203,7 +203,7 @@ static int KbdMessage( KEV kev, WPARAM *pwParam, LPARAM *plParam )
  * . retrieve the messages from the input queue
  * . verify
  */
-static void do_test( HWND hwnd, int seqnr, const KEV td[] )
+static BOOL do_test( HWND hwnd, int seqnr, const KEV td[] )
 {
     INPUT inputs[MAXKEYEVENTS];
     KMSG expmsg[MAXKEYEVENTS];
@@ -238,20 +238,25 @@ static void do_test( HWND hwnd, int seqnr, const KEV td[] )
             ok( msg.message == expmsg[i].message &&
                     msg.wParam == expmsg[i].wParam &&
                     msg.lParam == expmsg[i].lParam,
-                    "wrong message! expected:\n"
-                    "message[%d] %-15s wParam %04lx lParam %08lx\n",i,
-                    MSGNAME[(expmsg[i]).message - WM_KEYFIRST],
+                    "%u: wrong message %x expected %s wParam %04lx lParam %08lx\n",
+                    i, msg.message, MSGNAME[(expmsg[i]).message - WM_KEYFIRST],
                     expmsg[i].wParam, expmsg[i].lParam );
         }
         i++;
     }
     if (winetest_debug > 1)
         trace("%d messages retrieved\n", i);
+    if (!i && kmctr)
+    {
+        skip( "simulated keyboard input doesn't work\n" );
+        return FALSE;
+    }
     ok( i == kmctr, "message count is wrong: got %d expected: %d\n", i, kmctr);
+    return TRUE;
 }
 
 /* test all combinations of the specified key events */
-static void TestASet( HWND hWnd, int nrkev, const KEV kevdwn[], const KEV kevup[] )
+static BOOL TestASet( HWND hWnd, int nrkev, const KEV kevdwn[], const KEV kevup[] )
 {
     int i,j,k,l,m,n;
     static int count=0;
@@ -266,7 +271,7 @@ static void TestASet( HWND hWnd, int nrkev, const KEV kevdwn[], const KEV kevup[
                 kbuf[1] = kevdwn[1-i];
                 kbuf[2] = kevup[j];
                 kbuf[3] = kevup[1-j];
-                do_test( hWnd, count++, kbuf);
+                if (!do_test( hWnd, count++, kbuf)) return FALSE;
             }
         }
     }
@@ -288,7 +293,7 @@ static void TestASet( HWND hWnd, int nrkev, const KEV kevdwn[], const KEV kevup[
                                 kbuf[3] = kevup[l];
                                 kbuf[4] = kevup[m];
                                 kbuf[5] = kevup[n];
-                                do_test( hWnd, count++, kbuf);
+                                if (!do_test( hWnd, count++, kbuf)) return FALSE;
                             }
                         }
                     }
@@ -296,6 +301,7 @@ static void TestASet( HWND hWnd, int nrkev, const KEV kevdwn[], const KEV kevup[
             }
         }
     }
+    return TRUE;
 }
 
 /* test each set specified in the global testkeyset array */
@@ -303,8 +309,7 @@ static void TestSysKeys( HWND hWnd)
 {
     int i;
     for(i=0; testkeyset[i].nrkev;i++)
-        TestASet( hWnd, testkeyset[i].nrkev, testkeyset[i].keydwn,
-                testkeyset[i].keyup);
+        if (!TestASet( hWnd, testkeyset[i].nrkev, testkeyset[i].keydwn, testkeyset[i].keyup)) break;
 }
 
 static LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam,




More information about the wine-cvs mailing list