Module: wine Branch: master Commit: f00b59f597b047577d7542d0743701890a8f3b78 URL: https://source.winehq.org/git/wine.git/?a=commit;h=f00b59f597b047577d7542d07...
Author: Brendan Shanks bshanks@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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);