From: Giovanni Mascellani <gmascellani@codeweavers.com> Similarly to what happens for rendering. --- dlls/mmdevapi/tests/capture.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index 22ccab208d8..34e47b56fb1 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -661,11 +661,16 @@ static void test_format(AUDCLNT_SHAREMODE mode, WAVEFORMATEXTENSIBLE *fmt) expected = validate_fmt(fmt, compatible); todo_wine_if(hr != expected) ok(hr == expected, "Initialize(RATEADJUST) returns %08lx, expected %08lx\n", hr, expected); - } else { - ok(hr == S_OK || hr == AUDCLNT_E_ENDPOINT_CREATE_FAILED || hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED - || hr == AUDCLNT_E_ENDPOINT_CREATE_FAILED || hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == E_INVALIDARG, - "Initialize(RATEADJUST) returns %08lx\n", hr); - } + } else if (hrs == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED) + /* Unsupported format implies "create failed" and shadows "not allowed" */ + ok(hr == AUDCLNT_E_ENDPOINT_CREATE_FAILED || hr == hrs, + "Initialize() returns %08lx(%08lx)\n", hr, hrs); + else + /* For some drivers Initialize() doesn't match IsFormatSupported(). */ + todo_wine_if(hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED || (hr == S_OK && hrs != S_OK)) + ok(hrs == S_OK ? hr == S_OK || broken(hr == E_INVALIDARG) + : hr == AUDCLNT_E_ENDPOINT_CREATE_FAILED || hr == AUDCLNT_E_UNSUPPORTED_FORMAT || hr == E_INVALIDARG, + "Initialize() returns %08lx\n", hr); IAudioClient_Release(ac); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10109