[PATCH] dsound/tests: Added additional tests of IDirectSound_CreateSoundBuffe. [2/2]

Roy Shea royshea at gmail.com
Tue Jun 24 12:29:50 CDT 2008


The new IDirectSound_CreateSoundBuffer tests stress the effects of
different malformed DSBUFFERDESC buffer descriptions.  These tests have
been verified on Windows XP.
---
 dlls/dsound/tests/dsound.c |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/dlls/dsound/tests/dsound.c b/dlls/dsound/tests/dsound.c
index fc15bad..4b84eb9 100644
--- a/dlls/dsound/tests/dsound.c
+++ b/dlls/dsound/tests/dsound.c
@@ -401,16 +401,42 @@ static HRESULT test_primary(LPGUID lpGuid)
        "IDirectSound_CreateSoundBuffer() should have failed: %s\n",
        DXGetErrorString8(rc));

+    /* DSOUND: Error: NULL pointer is invalid */
     /* DSOUND: Error: Invalid buffer description pointer */
     rc=IDirectSound_CreateSoundBuffer(dso,0,&primary,NULL);
     ok(rc==DSERR_INVALIDPARAM && primary==0,
        "IDirectSound_CreateSoundBuffer() should have failed: rc=%s,"
        "dsbo=%p\n",DXGetErrorString8(rc),primary);

-    ZeroMemory(&bufdesc, sizeof(bufdesc));
-
     /* DSOUND: Error: Invalid size */
     /* DSOUND: Error: Invalid buffer description */
+    primary=NULL;
+    ZeroMemory(&bufdesc, sizeof(bufdesc));
+    bufdesc.dwSize=sizeof(bufdesc)-1;
+    rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&primary,NULL);
+    ok(rc==DSERR_INVALIDPARAM && primary==0,
+       "IDirectSound_CreateSoundBuffer() should have failed: rc=%s,"
+       "primary=%p\n",DXGetErrorString8(rc),primary);
+
+    /* DSOUND: Error: DSBCAPS_PRIMARYBUFFER flag with non-NULL lpwfxFormat */
+    /* DSOUND: Error: Invalid buffer description pointer */
+    primary=NULL;
+    ZeroMemory(&bufdesc, sizeof(bufdesc));
+    bufdesc.dwSize=sizeof(bufdesc);
+    bufdesc.dwFlags=DSBCAPS_PRIMARYBUFFER;
+    bufdesc.lpwfxFormat=&wfx;
+    rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&primary,NULL);
+    ok(rc==DSERR_INVALIDPARAM && primary==0,
+       "IDirectSound_CreateSoundBuffer() should have failed: rc=%s,"
+       "primary=%p\n",DXGetErrorString8(rc),primary);
+
+    /* DSOUND: Error: No DSBCAPS_PRIMARYBUFFER flag with NULL lpwfxFormat */
+    /* DSOUND: Error: Invalid buffer description pointer */
+    primary=NULL;
+    ZeroMemory(&bufdesc, sizeof(bufdesc));
+    bufdesc.dwSize=sizeof(bufdesc);
+    bufdesc.dwFlags=0;
+    bufdesc.lpwfxFormat=NULL;
     rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&primary,NULL);
     ok(rc==DSERR_INVALIDPARAM && primary==0,
        "IDirectSound_CreateSoundBuffer() should have failed: rc=%s,"
--
1.5.4.5



More information about the wine-patches mailing list