Jeff Zaroyko : dsound: Fix a few failing tests and a crash on 2008 (revised ).
Alexandre Julliard
julliard at winehq.org
Wed Sep 10 06:01:46 CDT 2008
Module: wine
Branch: master
Commit: 49d309804d3a0beebb178793a04f99f771d2bf53
URL: http://source.winehq.org/git/wine.git/?a=commit;h=49d309804d3a0beebb178793a04f99f771d2bf53
Author: Jeff Zaroyko <jeffz at jeffz.name>
Date: Wed Sep 10 04:44:46 2008 +1000
dsound: Fix a few failing tests and a crash on 2008 (revised).
---
dlls/dsound/tests/dsound.c | 25 +++++++++++++++++++++----
dlls/dsound/tests/dsound8.c | 27 +++++++++++++++++++++++----
2 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/dlls/dsound/tests/dsound.c b/dlls/dsound/tests/dsound.c
index d6c0f29..9dc8f21 100644
--- a/dlls/dsound/tests/dsound.c
+++ b/dlls/dsound/tests/dsound.c
@@ -716,8 +716,9 @@ static HRESULT test_secondary(LPGUID lpGuid)
if (gotdx8 || wfx.wBitsPerSample <= 16)
{
if (wfx.wBitsPerSample > 16)
- ok((rc == DSERR_CONTROLUNAVAIL || rc == DSERR_INVALIDCALL) &&
- !secondary, "IDirectSound_CreateSoundBuffer() "
+ ok(((rc == DSERR_CONTROLUNAVAIL || rc == DSERR_INVALIDCALL || rc == DSERR_INVALIDPARAM /* 2003 */) && !secondary)
+ || rc == DS_OK, /* driver dependent? */
+ "IDirectSound_CreateSoundBuffer() "
"should have returned (DSERR_CONTROLUNAVAIL or DSERR_INVALIDCALL) "
"and NULL, returned: %08x %p\n", rc, secondary);
else
@@ -750,20 +751,27 @@ static HRESULT test_secondary(LPGUID lpGuid)
wfxe.dwChannelMask = (wfx.nChannels == 1 ? KSAUDIO_SPEAKER_MONO : KSAUDIO_SPEAKER_STEREO);
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
- ok(rc==DSERR_INVALIDPARAM && !secondary,
+ ok((rc==DSERR_INVALIDPARAM || rc==DSERR_INVALIDCALL /* 2003 */) && !secondary,
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.Format.cbSize = sizeof(wfxe) - sizeof(wfx) + 1;
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
- ok(rc==DSERR_CONTROLUNAVAIL && !secondary,
+ ok(((rc==DSERR_CONTROLUNAVAIL || rc==DSERR_INVALIDCALL) && !secondary)
+ || rc==DS_OK, /* 2003 / 2008 */
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.Format.cbSize = sizeof(wfxe) - sizeof(wfx);
wfxe.SubFormat = GUID_NULL;
@@ -772,7 +780,10 @@ static HRESULT test_secondary(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
++wfxe.Samples.wValidBitsPerSample;
@@ -781,7 +792,10 @@ static HRESULT test_secondary(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
--wfxe.Samples.wValidBitsPerSample;
wfxe.Samples.wValidBitsPerSample = 0;
@@ -790,7 +804,10 @@ static HRESULT test_secondary(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.Samples.wValidBitsPerSample = wfxe.Format.wBitsPerSample;
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
diff --git a/dlls/dsound/tests/dsound8.c b/dlls/dsound/tests/dsound8.c
index 8edb9b4..2e02a92 100644
--- a/dlls/dsound/tests/dsound8.c
+++ b/dlls/dsound/tests/dsound8.c
@@ -574,7 +574,9 @@ static HRESULT test_primary_secondary8(LPGUID lpGuid)
formats[f][2]);
wfx2=wfx;
rc=IDirectSoundBuffer_SetFormat(primary,&wfx);
- ok(rc==DS_OK,"IDirectSoundBuffer_SetFormat(%s) failed: %08x\n",
+ ok(rc==DS_OK
+ || rc==DSERR_INVALIDPARAM, /* 2003 */
+ "IDirectSoundBuffer_SetFormat(%s) failed: %08x\n",
format_string(&wfx), rc);
/* There is no guarantee that SetFormat will actually change the
@@ -723,8 +725,9 @@ static HRESULT test_secondary8(LPGUID lpGuid)
bufdesc.lpwfxFormat=&wfx;
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
if (wfx.wBitsPerSample != 8 && wfx.wBitsPerSample != 16)
- ok((rc == DSERR_CONTROLUNAVAIL || rc == DSERR_INVALIDCALL) &&
- !secondary, "IDirectSound_CreateSoundBuffer() "
+ ok(((rc == DSERR_CONTROLUNAVAIL || rc == DSERR_INVALIDCALL || rc == DSERR_INVALIDPARAM /* 2003 */) && !secondary)
+ || rc == DS_OK, /* driver dependent? */
+ "IDirectSound_CreateSoundBuffer() "
"should have returned (DSERR_CONTROLUNAVAIL or DSERR_INVALIDCALL) "
"and NULL, returned: %08x %p\n", rc, secondary);
else
@@ -748,16 +751,23 @@ static HRESULT test_secondary8(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.Format.cbSize = sizeof(wfxe) - sizeof(wfx) + 1;
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
- ok(rc==DSERR_CONTROLUNAVAIL && !secondary,
+ ok(((rc==DSERR_CONTROLUNAVAIL || DSERR_INVALIDCALL /* 2003 */) && !secondary)
+ || rc==DS_OK /* driver dependent? */,
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.Format.cbSize = sizeof(wfxe) - sizeof(wfx);
wfxe.SubFormat = GUID_NULL;
@@ -766,7 +776,10 @@ static HRESULT test_secondary8(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
++wfxe.Samples.wValidBitsPerSample;
@@ -775,7 +788,10 @@ static HRESULT test_secondary8(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
--wfxe.Samples.wValidBitsPerSample;
wfxe.Samples.wValidBitsPerSample = 0;
@@ -784,7 +800,10 @@ static HRESULT test_secondary8(LPGUID lpGuid)
"IDirectSound_CreateSoundBuffer() returned: %08x %p\n",
rc, secondary);
if (secondary)
+ {
IDirectSoundBuffer_Release(secondary);
+ secondary=NULL;
+ }
wfxe.Samples.wValidBitsPerSample = wfxe.Format.wBitsPerSample;
rc=IDirectSound_CreateSoundBuffer(dso,&bufdesc,&secondary,NULL);
More information about the wine-cvs
mailing list