Bruno Jesus : xinput1_3/tests: Add interactive tests.

Alexandre Julliard julliard at winehq.org
Wed Dec 14 16:45:28 CST 2016


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

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Tue Dec 13 23:21:59 2016 -0200

xinput1_3/tests: Add interactive tests.

Signed-off-by: Bruno Jesus <00cpxxx at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/xinput1_3/tests/xinput.c | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/dlls/xinput1_3/tests/xinput.c b/dlls/xinput1_3/tests/xinput.c
index 0deab26..87f9929 100644
--- a/dlls/xinput1_3/tests/xinput.c
+++ b/dlls/xinput1_3/tests/xinput.c
@@ -96,8 +96,7 @@ static void test_get_state(void)
         XINPUT_STATE state;
         XINPUT_STATE_EX state_ex;
     } xinput;
-    DWORD controllerNum, i;
-    DWORD result;
+    DWORD controllerNum, i, result, good = XUSER_MAX_COUNT;
 
     for (i = 0; i < (pXInputGetStateEx ? 2 : 1); i++)
     {
@@ -120,7 +119,10 @@ static void test_get_state(void)
 
             trace("-- Results for controller %d --\n", controllerNum);
             if (i == 0)
+            {
+                good = controllerNum;
                 trace("XInputGetState: %d\n", result);
+            }
             else
                 trace("XInputGetStateEx: %d\n", result);
             trace("State->dwPacketNumber: %d\n", xinput.state.dwPacketNumber);
@@ -141,6 +143,28 @@ static void test_get_state(void)
         result = pXInputGetStateEx(XUSER_MAX_COUNT+1, &xinput.state_ex);
         ok(result == ERROR_BAD_ARGUMENTS, "XInputGetState returned (%d)\n", result);
     }
+
+    if (winetest_interactive && good < XUSER_MAX_COUNT)
+    {
+        DWORD now = GetTickCount(), packet = 0;
+        XINPUT_GAMEPAD *game = &xinput.state.Gamepad;
+
+        trace("You have 20 seconds to test the joystick freely\n");
+        do
+        {
+            Sleep(100);
+            pXInputGetState(good, &xinput.state);
+            if (xinput.state.dwPacketNumber == packet)
+                continue;
+
+            packet = xinput.state.dwPacketNumber;
+            trace("Buttons 0x%04X Triggers %3d/%3d LT %6d/%6d RT %6d/%6d\n",
+                  game->wButtons, game->bLeftTrigger, game->bRightTrigger,
+                  game->sThumbLX, game->sThumbLY, game->sThumbRX, game->sThumbRY);
+        }
+        while(GetTickCount() - now < 20000);
+        trace("Test over...\n");
+    }
 }
 
 static void test_get_keystroke(void)




More information about the wine-cvs mailing list