Brendan Shanks : dinput/tests: Test IDirectInputEffect::SetParameters() with NULL effect parameters.
Alexandre Julliard
julliard at winehq.org
Thu Mar 26 16:27:23 CDT 2020
Module: wine
Branch: master
Commit: f00b59f597b047577d7542d0743701890a8f3b78
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f00b59f597b047577d7542d0743701890a8f3b78
Author: Brendan Shanks <bshanks at codeweavers.com>
Date: Wed Mar 25 16:31:29 2020 -0700
dinput/tests: Test IDirectInputEffect::SetParameters() with NULL effect parameters.
Signed-off-by: Brendan Shanks <bshanks at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/dinput/tests/joystick.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/dlls/dinput/tests/joystick.c b/dlls/dinput/tests/joystick.c
index f009ef347b..fb777e71ae 100644
--- a/dlls/dinput/tests/joystick.c
+++ b/dlls/dinput/tests/joystick.c
@@ -598,11 +598,34 @@ static BOOL CALLBACK EnumJoysticks(const DIDEVICEINSTANCEA *lpddi, void *pvRef)
{
DWORD effect_status;
struct DIPROPDWORD diprop_word;
+ void *tmp;
GUID guid = {0};
hr = IDirectInputEffect_Initialize(effect, hInstance, data->version,
&effect_data.guid);
ok(hr==DI_OK,"IDirectInputEffect_Initialize failed: %08x\n", hr);
+
+ /* Test SetParameters with NULL pointers */
+ todo_wine {
+ tmp = effect_data.eff.rgdwAxes;
+ effect_data.eff.rgdwAxes = NULL;
+ hr = IDirectInputEffect_SetParameters(effect, &effect_data.eff, DIEP_AXES);
+ ok(hr==DIERR_INVALIDPARAM,"IDirectInputEffect_SetParameters should fail with INVALIDPARAM, got: %08x\n", hr);
+ effect_data.eff.rgdwAxes = tmp;
+
+ tmp = effect_data.eff.rglDirection;
+ effect_data.eff.rglDirection = NULL;
+ hr = IDirectInputEffect_SetParameters(effect, &effect_data.eff, DIEP_DIRECTION);
+ ok(hr==DIERR_INVALIDPARAM,"IDirectInputEffect_SetParameters should fail with INVALIDPARAM, got: %08x\n", hr);
+ effect_data.eff.rglDirection = tmp;
+
+ tmp = effect_data.eff.lpvTypeSpecificParams;
+ effect_data.eff.lpvTypeSpecificParams = NULL;
+ hr = IDirectInputEffect_SetParameters(effect, &effect_data.eff, DIEP_TYPESPECIFICPARAMS);
+ ok(hr==DIERR_INVALIDPARAM,"IDirectInputEffect_SetParameters should fail with INVALIDPARAM, got: %08x\n", hr);
+ effect_data.eff.lpvTypeSpecificParams = tmp;
+ }
+
hr = IDirectInputEffect_SetParameters(effect, &effect_data.eff, DIEP_AXES | DIEP_DIRECTION |
DIEP_TYPESPECIFICPARAMS);
ok(hr==DI_OK,"IDirectInputEffect_SetParameters failed: %08x\n", hr);
More information about the wine-cvs
mailing list