Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/effect.c:
+ hr = effect->lpVtbl->GetParameterDesc(effect, param, ¶m_desc); + ok(hr == D3D_OK, "Unexpected hr %#lx.\n", hr); + + /* Clear our values first. */ + memset(tmp, 0, sizeof(tmp)); + hr = effect->lpVtbl->SetValue(effect, param, tmp, sizeof(tmp)); + ok(hr == D3D_OK, "Unexpected hr %#lx.\n", hr); + + hr = effect->lpVtbl->SetRawValue(effect, param, raw_value_tests[i].value.dword, raw_value_tests[i].value_offset, + raw_value_tests[i].value_bytes); + todo_wine_if(raw_value_tests[i].todo_hr) ok(hr == D3D_OK, "Unexpected hr %#lx.\n", hr); + if (SUCCEEDED(hr)) + { + unsigned int unexpected_values = 0; + + hr = effect->lpVtbl->GetValue(effect, param, tmp, sizeof(tmp)); Maybe it's worth considering something like:
memset(tmp, 0xff, sizeof(tmp));
hr = effect->lpVtbl->GetValue(effect, param, tmp, sizeof(tmp));
And then checking after the `for` loop, see below. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7505#note_97217