From 20a50f30c4ab57330436438ee42bbc5b491623fd Mon Sep 17 00:00:00 2001 From: Paul Vriens Date: Thu, 24 Dec 2009 13:12:36 +0100 Subject: [PATCH] mmdevapi/tests: Fix a test failure on Vista+ with no soundcard present. --- dlls/mmdevapi/tests/dependency.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/dlls/mmdevapi/tests/dependency.c b/dlls/mmdevapi/tests/dependency.c index 1568bed2322..0d60cb2f902 100644 --- a/dlls/mmdevapi/tests/dependency.c +++ b/dlls/mmdevapi/tests/dependency.c @@ -55,15 +55,18 @@ START_TEST(dependency) if (FAILED(hr)) { skip("mmdevapi not available: 0x%08x\n", hr); - return; + goto cleanup; } hr = IMMDeviceEnumerator_GetDefaultAudioEndpoint(mme, eRender, eMultimedia, &dev); - ok(hr == S_OK, "GetDefaultAudioEndpoint failed: 0x%08x\n", hr); + ok(hr == S_OK || hr == E_NOTFOUND, "GetDefaultAudioEndpoint failed: 0x%08x\n", hr); if (hr != S_OK) { - skip("GetDefaultAudioEndpoint returns 0x%08x, skipping tests\n", hr); - return; + if (hr == E_NOTFOUND) + skip("No sound card available\n"); + else + skip("GetDefaultAudioEndpoint returns 0x%08x\n", hr); + goto cleanup; } ok(!GetModuleHandle("dsound.dll"), "dsound.dll was already loaded!\n"); @@ -94,8 +97,14 @@ START_TEST(dependency) ok(IsEqualCLSID(&clsid, &CLSID_DSoundRender), "Wrong class id %s", dump_guid(&clsid)); } } + +cleanup: if (bf) IUnknown_Release(bf); + if (dev) + IUnknown_Release(dev); + if (mme) + IUnknown_Release(mme); - IUnknown_Release(mme); + CoUninitialize(); }