[PATCH] dsound/tests: Handle broken E_FAIL of broken AC97 driver

Detlef Riekenberg wine.dev at web.de
Sun Oct 14 16:39:46 CDT 2012


Found on XP with Realtec AC97 Audio
http://test.winehq.org/data/ee59341721b90e58165a7bb12cbf2906fbd680d1/xp_dr-xp-sigi/dsound:dsound.html

--
By by ... Detlef
---
 dlls/dsound/tests/dsound.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/dsound/tests/dsound.c b/dlls/dsound/tests/dsound.c
index 5b941a3..ad17d54 100644
--- a/dlls/dsound/tests/dsound.c
+++ b/dlls/dsound/tests/dsound.c
@@ -1535,7 +1535,7 @@ static void test_hw_buffers(void)
     trace("dwMaxHwMixingStreamingBuffers: %u\n", caps.dwMaxHwMixingStreamingBuffers);
     for(i = 0; i < caps.dwMaxHwMixingAllBuffers; ++i){
         hr = IDirectSound_CreateSoundBuffer(ds, &bufdesc, &secondaries[i], NULL);
-        ok(hr == S_OK || hr == E_NOTIMPL || broken(hr == DSERR_CONTROLUNAVAIL),
+        ok(hr == S_OK || hr == E_NOTIMPL || broken(hr == DSERR_CONTROLUNAVAIL) || broken(hr == E_FAIL),
                 "CreateSoundBuffer(%u) failed: %08x\n", i, hr);
         if(hr != S_OK)
             break;
@@ -1553,8 +1553,9 @@ static void test_hw_buffers(void)
             (caps.dwMaxHwMixingAllBuffers == 0 && hr == DSERR_INVALIDCALL) || /* no hw buffers at all */
             hr == E_NOTIMPL || /* don't support hw buffers */
             broken(hr == DSERR_CONTROLUNAVAIL) || /* vmware winxp, others? */
+            broken(hr == E_FAIL) || /* broken AC97 driver */
             broken(hr == S_OK) /* broken driver allows more hw bufs than dscaps claims */,
-            "CreateSoundBuffer gave wrong error: %08x\n", hr);
+            "CreateSoundBuffer(%u) gave wrong error: %08x\n", i, hr);
     if(hr == S_OK)
         IDirectSoundBuffer_Release(secondary);
 
-- 
1.7.5.4




More information about the wine-patches mailing list