Paul Vriens : dsound/tests: Fix test failures on WinXP and 2003.

Alexandre Julliard julliard at winehq.org
Fri Nov 9 07:44:19 CST 2007


Module: wine
Branch: master
Commit: 8454cb17a8be07a4e03706bb406576004f3684f2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8454cb17a8be07a4e03706bb406576004f3684f2

Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date:   Thu Nov  8 21:45:14 2007 +0100

dsound/tests: Fix test failures on WinXP and 2003.

---

 dlls/dsound/tests/ds3d.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/dlls/dsound/tests/ds3d.c b/dlls/dsound/tests/ds3d.c
index bba6c36..e20dc21 100644
--- a/dlls/dsound/tests/ds3d.c
+++ b/dlls/dsound/tests/ds3d.c
@@ -349,18 +349,21 @@ void test_buffer(LPDIRECTSOUND dso, LPDIRECTSOUNDBUFFER *dsbo,
               dsbcaps.dwBufferBytes);
     }
 
-    /* Query the format size. Note that it may not match sizeof(wfx) */
+    /* Query the format size. */
     size=0;
     rc=IDirectSoundBuffer_GetFormat(*dsbo,NULL,0,&size);
     ok(rc==DS_OK && size!=0,"IDirectSoundBuffer_GetFormat() should have "
        "returned the needed size: rc=%s size=%d\n",DXGetErrorString8(rc),size);
 
-    rc=IDirectSoundBuffer_GetFormat(*dsbo,&wfx,sizeof(wfx),NULL);
-    if (wfx.wFormatTag == WAVE_FORMAT_EXTENSIBLE)
-    {
+    ok(size == sizeof(WAVEFORMATEX) || size == sizeof(WAVEFORMATEXTENSIBLE),
+       "Expected a correct structure size, got %d\n", size);
+
+    if (size == sizeof(WAVEFORMATEX)) {
+        rc=IDirectSoundBuffer_GetFormat(*dsbo,&wfx,size,NULL);
+    }
+    else if (size == sizeof(WAVEFORMATEXTENSIBLE)) {
         WAVEFORMATEXTENSIBLE wfxe;
-        ok(rc == DSERR_INVALIDPARAM, "IDirectSoundBuffer_GetFormat returned: %s\n", DXGetErrorString8(rc));
-        rc=IDirectSoundBuffer_GetFormat(*dsbo,(WAVEFORMATEX*)&wfxe,sizeof(wfxe),NULL);
+        rc=IDirectSoundBuffer_GetFormat(*dsbo,(WAVEFORMATEX*)&wfxe,size,NULL);
         wfx = wfxe.Format;
     }
     ok(rc==DS_OK,




More information about the wine-cvs mailing list