From 6b88529b3c414fa62763f3240fa967ada82f103b Mon Sep 17 00:00:00 2001 From: Bruno Jesus <00cpxxx@gmail.com> Date: Tue, 13 Dec 2016 23:21:59 -0200 Subject: [PATCH] xinput1_3/tests: Add interactive tests. Signed-off-by: Bruno Jesus <00cpxxx@gmail.com> Signed-off-by: Alexandre Julliard --- 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 0deab2691e6..87f99297826 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)