From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dinput/tests/joystick8.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/dinput/tests/joystick8.c b/dlls/dinput/tests/joystick8.c index 60bee06479a..e336cc24c6d 100644 --- a/dlls/dinput/tests/joystick8.c +++ b/dlls/dinput/tests/joystick8.c @@ -5090,6 +5090,12 @@ static void test_windows_gaming_input(void) ok( tmp_raw_controller == raw_controller, "got unexpected IGameController interface\n" ); IRawGameController_Release( tmp_raw_controller );
+ hr = IRawGameControllerStatics_FromGameController( controller_statics, (IGameController *)raw_controller, &tmp_raw_controller ); + ok( hr == S_OK, "FromGameController returned %#lx\n", hr ); + todo_wine + ok( tmp_raw_controller == raw_controller, "got unexpected IGameController interface\n" ); + if (tmp_raw_controller) IRawGameController_Release( tmp_raw_controller ); + IGameController_Release( game_controller ); IRawGameController_Release( raw_controller );
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dinput/tests/joystick8.c | 3 +-- dlls/windows.gaming.input/manager.c | 9 ++++++++- 2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/dinput/tests/joystick8.c b/dlls/dinput/tests/joystick8.c index e336cc24c6d..191e5273e1d 100644 --- a/dlls/dinput/tests/joystick8.c +++ b/dlls/dinput/tests/joystick8.c @@ -5092,9 +5092,8 @@ static void test_windows_gaming_input(void)
hr = IRawGameControllerStatics_FromGameController( controller_statics, (IGameController *)raw_controller, &tmp_raw_controller ); ok( hr == S_OK, "FromGameController returned %#lx\n", hr ); - todo_wine ok( tmp_raw_controller == raw_controller, "got unexpected IGameController interface\n" ); - if (tmp_raw_controller) IRawGameController_Release( tmp_raw_controller ); + IRawGameController_Release( tmp_raw_controller );
IGameController_Release( game_controller ); IRawGameController_Release( raw_controller ); diff --git a/dlls/windows.gaming.input/manager.c b/dlls/windows.gaming.input/manager.c index c2567a2fe3e..d54b01d92e3 100644 --- a/dlls/windows.gaming.input/manager.c +++ b/dlls/windows.gaming.input/manager.c @@ -372,14 +372,18 @@ statics2_TryGetFactoryControllerFromGameController( IGameControllerFactoryManage IGameController *controller, IGameController **value ) { struct controller *entry, *other; + IGameController *tmp_controller; BOOL found = FALSE;
TRACE( "iface %p, factory %p, controller %p, value %p.\n", iface, factory, controller, value );
+ /* Spider Man Remastered passes a IRawGameController instead of IGameController, query the iface again */ + if (FAILED(IGameController_QueryInterface( controller, &IID_IGameController, (void **)&tmp_controller ))) goto done; + EnterCriticalSection( &manager_cs );
LIST_FOR_EACH_ENTRY( entry, &controller_list, struct controller, entry ) - if ((found = &entry->IGameController_iface == controller)) break; + if ((found = &entry->IGameController_iface == tmp_controller)) break;
if (!found) WARN( "Failed to find controller %p\n", controller ); else @@ -392,6 +396,9 @@ statics2_TryGetFactoryControllerFromGameController( IGameControllerFactoryManage
LeaveCriticalSection( &manager_cs );
+ IGameController_Release( tmp_controller ); + +done: if (!found) *value = NULL; return S_OK; }
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=132900
Your paranoid android.
=== debian11 (32 bit report) ===
dinput: Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x6fc8de5f). hid.c:667: Test failed: failed to create device, error 0xe0000207 hid.c:670: Test failed: failed to create set hardware ID, error 87 hid.c:673: Test failed: failed to register device, error 87 hid.c:748: Test failed: 0x800: desc[0]: WaitForSingleObject returned 0x102 hid.c:719: Test failed: 0x800: desc[0]: IOCTL_WINETEST_REMOVE_DEVICE failed, last error 5 hid.c:499: Test failed: got error 3 driver_hid.c:56: Test failed: got NextDevice 0024BEF0 driver_hid.c:56: Test failed: got NextDevice 0024BEF0 driver_hid.c:56: Test failed: got NextDevice 0024BEF0 driver_hid.c:56: Test failed: got NextDevice 0024BEF0 driver_hid.c:56: Test failed: got NextDevice 0024BEF0
hid: device.c:123: Test failed: Failed to open L"\\?\hid#vid_1209&pid_0001#0&0000&0#{4d1e55b2-f16f-11cf-88cb-001111000030}", error 3. device.c:123: Test failed: Failed to open L"\\?\hid#vid_845e&pid_0001#0&0000&0&0#{4d1e55b2-f16f-11cf-88cb-001111000030}", error 3. device.c:123: Test failed: Failed to open L"\\?\hid#vid_845e&pid_0002#0&0000&0&0#{4d1e55b2-f16f-11cf-88cb-001111000030}", error 3. device.c:170: Test failed: got error 3 device.c:173: Test failed: Failed to get preparsed data(0x6) Unhandled exception: page fault on read access to 0x000074d3 in 32-bit code (0x71083243).
ntoskrnl.exe: ntoskrnl.c:1520: Test failed: wrong path "\\?\winetest#vid_1209&pid_0001#0&0000&0#{deadbeef-29ef-4538-a5fd-b69573a362c0}" ntoskrnl.c:1526: Test failed: got error 3 ntoskrnl.c:1547: Test failed: wrong class {00000000-0000-0000-0000-000000000000} ntoskrnl.c:1570: Test failed: wrong class {00000000-0000-0000-0000-000000000000} ntoskrnl.c:1572: Test failed: got flags 0 ntoskrnl.c:1586: Test failed: wrong class {00000000-0000-0000-0000-000000000000} ntoskrnl.c:1631: Test succeeded inside todo block: expected failure ntoskrnl.c:1637: Test failed: got error 0x6 ntoskrnl.c:1645: Test failed: got error 0x6 ntoskrnl.c:1650: Test failed: got error 0x6 ntoskrnl.c:1654: Test failed: got error 0x6 ntoskrnl.c:1656: Test failed: got size 200 ntoskrnl.c:1657: Test failed: got hardware IDs "ROOT\WINETEST\0\x00#vid_1209&pid_0001#0&0000&0#{deadbeef-29ef-4538-a5fd-b69573a362c0}\x00\x00\xe4*$\x00\x01\x00\x00\x00\xec\xc2\xc6{\x98\xf1g\x00\x11\x00\xc5{\x10\xf4g\x00\n\x00\x00\x00\xa0+$\x00\n\x00\x00\x00\x01\x00\x00\x00\x02\x03\x02\x03\x00P\xc9{8\xf2g\x00@\xf2g\x00\x00\x00\x00\x00\xa8"... ntoskrnl.c:1662: Test failed: got error 0x6 ntoskrnl.c:1664: Test failed: got size 400 ntoskrnl.c:1665: Test failed: got container ID L"\5222\4f4f\5c54\575c\4e49\5445\5345\5c54\305c\785c\3030\7623\6469\315f\3032\2639\6970\5f64\3030\3130\3023\3026\3030\2630\2330\647b\6165\6264\6565\2d66\3932\6665\342d\3335\2d38\3561\6466\622d\3936\3735\6133\3633\6332\7d30\785c\3030\785c\3030\785c\3465\242a\785c\3030\785c\3130\785c\3030\785c"... ntoskrnl.c:1669: Test failed: got error 0x6 ntoskrnl.c:1671: Test failed: got size 200 ntoskrnl.c:1672: Test failed: got compatible IDs "ROOT\WINETEST\0\x00#vid_1209&pid_0001#0&0000&0#{deadbeef-29ef-4538-a5fd-b69573a362c0}\x00\x00\xe4*$\x00\x01\x00\x00\x00\xec\xc2\xc6{\x98\xf1g\x00\x11\x00\xc5{\x10\xf4g\x00\n\x00\x00\x00\xa0+$\x00\n\x00\x00\x00\x01\x00\x00\x00\x02\x03\x02\x03\x00P\xc9{8\xf2g\x00@\xf2g\x00\x00\x00\x00\x00\xa8"... ntoskrnl.c:1685: Test failed: wrong class {00000000-0000-0000-0000-000000000000} ntoskrnl.c:1687: Test failed: got flags 0 ntoskrnl.c:1691: Test failed: failed to get interface path, error 0x57 ntoskrnl.c:1692: Test failed: wrong path "\WINETEST\0" ntoskrnl.c:1706: Test failed: got size 200 ntoskrnl.c:1716: Test failed: got size 200 ntoskrnl.c:1735: Test failed: got size 200 ntoskrnl.c:1849: Test failed: got error 3
user32: input.c:1820: Test failed: expected non-zero input.c:1826: Test failed: expected -1, got 0 input.c:1827: Test failed: expected 122, got -559038737 input.c:1828: Test failed: expected non-zero input.c:1832: Test failed: expected non-zero input.c:1967: Test failed: expected non-zero