[PATCH 6/6] dinput/tests: Add some RacingWheel runtimeclass tests.
Rémi Bernon
rbernon at codeweavers.com
Fri Apr 22 04:49:10 CDT 2022
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/dinput/tests/force_feedback.c | 36 +++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/dlls/dinput/tests/force_feedback.c b/dlls/dinput/tests/force_feedback.c
index 094612d7140..a4588f7022d 100644
--- a/dlls/dinput/tests/force_feedback.c
+++ b/dlls/dinput/tests/force_feedback.c
@@ -5157,6 +5157,7 @@ static void test_windows_gaming_input(void)
};
static const WCHAR *force_feedback_motor = RuntimeClass_Windows_Gaming_Input_ForceFeedback_ForceFeedbackMotor;
static const WCHAR *controller_class_name = RuntimeClass_Windows_Gaming_Input_RawGameController;
+ static const WCHAR *racing_wheel_class_name = RuntimeClass_Windows_Gaming_Input_RacingWheel;
DIPROPGUIDANDPATH guid_path =
{
@@ -5174,17 +5175,22 @@ static void test_windows_gaming_input(void)
EventRegistrationToken controller_added_token;
struct bool_async_handler bool_async_handler;
IVectorView_ForceFeedbackMotor *motors_view;
+ IVectorView_RacingWheel *racing_wheels_view;
+ IRacingWheelStatics2 *racing_wheel_statics2;
+ IRacingWheelStatics *racing_wheel_statics;
ForceFeedbackEffectAxes supported_axes;
IAsyncOperation_boolean *bool_async;
IRawGameController *raw_controller;
+ IGameController *game_controller;
IDirectInputDevice8W *device;
IForceFeedbackMotor *motor;
+ IRacingWheel *racing_wheel;
BOOLEAN paused, enabled;
IAsyncInfo *async_info;
+ DOUBLE gain;
HSTRING str;
HANDLE file;
UINT32 size;
- DOUBLE gain;
HRESULT hr;
DWORD ret;
ULONG ref;
@@ -5248,6 +5254,34 @@ static void test_windows_gaming_input(void)
ok( hr == S_OK, "GetAt returned %#lx\n", hr );
IVectorView_RawGameController_Release( controllers_view );
+ hr = pWindowsCreateString( racing_wheel_class_name, wcslen( racing_wheel_class_name ), &str );
+ ok( hr == S_OK, "WindowsCreateString returned %#lx\n", hr );
+ hr = pRoGetActivationFactory( str, &IID_IRacingWheelStatics, (void **)&racing_wheel_statics );
+ ok( hr == S_OK, "RoGetActivationFactory returned %#lx\n", hr );
+ hr = pRoGetActivationFactory( str, &IID_IRacingWheelStatics2, (void **)&racing_wheel_statics2 );
+ ok( hr == S_OK, "RoGetActivationFactory returned %#lx\n", hr );
+ pWindowsDeleteString( str );
+
+ /* HID driving wheels aren't exposed as WGI gamepads on Windows */
+
+ hr = IRacingWheelStatics_get_RacingWheels( racing_wheel_statics, &racing_wheels_view );
+ ok( hr == S_OK, "get_RacingWheels returned %#lx\n", hr );
+ hr = IVectorView_RacingWheel_get_Size( racing_wheels_view, &size );
+ ok( hr == S_OK, "get_Size returned %#lx\n", hr );
+ todo_wine /* but Wine currently intentionally does */
+ ok( size == 0, "got size %u\n", size );
+ IVectorView_RacingWheel_Release( racing_wheels_view );
+ IRacingWheelStatics_Release( racing_wheel_statics );
+
+ hr = IRawGameController_QueryInterface( raw_controller, &IID_IGameController, (void **)&game_controller );
+ ok( hr == S_OK, "QueryInterface returned %#lx\n", hr );
+ hr = IRacingWheelStatics2_FromGameController( racing_wheel_statics2, game_controller, &racing_wheel );
+ ok( hr == S_OK, "FromGameController returned %#lx\n", hr );
+ todo_wine
+ ok( racing_wheel == NULL, "got racing_wheel %p\n", racing_wheel );
+ IGameController_Release( game_controller );
+ IRacingWheelStatics2_Release( racing_wheel_statics2 );
+
set_hid_expect( file, expect_acquire, sizeof(expect_acquire) );
hr = IRawGameController_get_ForceFeedbackMotors( raw_controller, &motors_view );
todo_wine
--
2.35.1
More information about the wine-devel
mailing list