Mark Harmstone : dsound/tests: Add GetObjectInPath tests.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 3 09:42:11 CST 2015
Module: wine
Branch: master
Commit: b472e5574c59794ea6e15389cbba2b9e33357f01
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b472e5574c59794ea6e15389cbba2b9e33357f01
Author: Mark Harmstone <hellas at burntcomma.com>
Date: Tue Mar 3 07:46:15 2015 +0000
dsound/tests: Add GetObjectInPath tests.
---
dlls/dsound/tests/dsound8.c | 42 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 39 insertions(+), 3 deletions(-)
diff --git a/dlls/dsound/tests/dsound8.c b/dlls/dsound/tests/dsound8.c
index 5106cf0..b093312 100644
--- a/dlls/dsound/tests/dsound8.c
+++ b/dlls/dsound/tests/dsound8.c
@@ -38,6 +38,8 @@
#include "ksmedia.h"
#include "initguid.h"
+
+#include "mediaobj.h"
#include "wingdi.h"
#include "mmdeviceapi.h"
#include "audioclient.h"
@@ -1256,6 +1258,8 @@ static void test_effects(void)
if (rc==DS_OK && secondary8) {
LPVOID ptr1,ptr2;
DWORD bytes1,bytes2;
+ IUnknown* obj = NULL;
+ HRESULT rc2;
/* Call SetFX with dwEffectsCount > 0 and pDSFXDesc == NULL */
rc=IDirectSoundBuffer8_SetFX(secondary8,1,NULL,NULL);
@@ -1307,14 +1311,46 @@ static void test_effects(void)
}
/* Call SetFX with standard echo */
- rc=IDirectSoundBuffer8_SetFX(secondary8,1,&effects[0],resultcodes);
- ok(rc==DS_OK||rc==REGDB_E_CLASSNOTREG||rc==DSERR_CONTROLUNAVAIL,
+ rc2=IDirectSoundBuffer8_SetFX(secondary8,1,&effects[0],resultcodes);
+ ok(rc2==DS_OK||rc2==REGDB_E_CLASSNOTREG||rc2==DSERR_CONTROLUNAVAIL,
"IDirectSoundBuffer8_SetFX(GUID_DSFX_STANDARD_ECHO) failed: %08x\n",rc);
- if (rc!=DSERR_CONTROLUNAVAIL) {
+ if (rc2!=DSERR_CONTROLUNAVAIL) {
ok(resultcodes[0]==DSFXR_UNKNOWN||resultcodes[0]==DSFXR_LOCHARDWARE||resultcodes[0]==DSFXR_LOCSOFTWARE,
"resultcode == %08x, expected DSFXR_UNKNOWN, DSFXR_LOCHARDWARE, or DSFXR_LOCSOFTWARE\n",resultcodes[0]);
}
+ /* Call GetObjectInPath for out-of-bounds DMO */
+ rc=IDirectSoundBuffer8_GetObjectInPath(secondary8,&GUID_All_Objects,2,&IID_IMediaObject,(void**)&obj);
+ ok(rc==DSERR_OBJECTNOTFOUND||rc==DSERR_CONTROLUNAVAIL,"IDirectSoundBuffer8_GetObjectInPath() "
+ "should have returned DSERR_OBJECTNOTFOUND, returned: %08x\n",rc);
+
+ /* Call GetObjectInPath with NULL ppObject */
+ rc=IDirectSoundBuffer8_GetObjectInPath(secondary8,&GUID_All_Objects,0,&IID_IMediaObject,NULL);
+ ok(rc==E_INVALIDARG||rc==DSERR_CONTROLUNAVAIL,"IDirectSoundBuffer8_GetObjectInPath() "
+ "should have returned E_INVALIDARG, returned: %08x\n",rc);
+
+ /* Call GetObjectInPath for unsupported interface */
+ rc=IDirectSoundBuffer8_GetObjectInPath(secondary8,&GUID_All_Objects,0,&GUID_NULL,(void**)&obj);
+ ok(rc==E_NOINTERFACE||rc==DSERR_CONTROLUNAVAIL,"IDirectSoundBuffer8_GetObjectInPath() "
+ "should have returned E_NOINTERFACE, returned: %08x\n",rc);
+
+ /* Call GetObjectInPath for unloaded DMO */
+ rc=IDirectSoundBuffer8_GetObjectInPath(secondary8,&GUID_NULL,0,&IID_IMediaObject,(void**)&obj);
+ ok(rc==DSERR_OBJECTNOTFOUND||rc==DSERR_CONTROLUNAVAIL,"IDirectSoundBuffer8_GetObjectInPath() "
+ "should have returned DSERR_OBJECTNOTFOUND, returned: %08x\n",rc);
+
+ /* Call GetObjectInPath for first DMO */
+ obj=NULL;
+ rc=IDirectSoundBuffer8_GetObjectInPath(secondary8,&GUID_All_Objects,0,&IID_IMediaObject,(void**)&obj);
+ if (rc2==DS_OK) {
+ ok(rc==DS_OK||rc==DSERR_CONTROLUNAVAIL,"IDirectSoundBuffer8_GetObjectInPath() "
+ "should have returned DS_OK, returned: %08x\n",rc);
+ if (obj) IUnknown_Release(obj);
+ } else {
+ ok(rc==DSERR_OBJECTNOTFOUND||rc==DSERR_CONTROLUNAVAIL,"IDirectSoundBuffer8_GetObjectInPath() "
+ "should have returned DSERR_OBJECTNOTFOUND, returned: %08x\n",rc);
+ }
+
/* Call SetFX with one real filter and one fake one */
rc=IDirectSoundBuffer8_SetFX(secondary8,2,effects,resultcodes);
ok(rc==REGDB_E_CLASSNOTREG||rc==DSERR_CONTROLUNAVAIL,
More information about the wine-cvs
mailing list