[PATCH 2/6] dmloader/tests: Centralize the skip().

Michael Stefaniuc mstefani at redhat.de
Wed Mar 12 17:00:53 CDT 2014


---
 dlls/dmloader/tests/loader.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/dlls/dmloader/tests/loader.c b/dlls/dmloader/tests/loader.c
index 8759033..3d8dd80 100644
--- a/dlls/dmloader/tests/loader.c
+++ b/dlls/dmloader/tests/loader.c
@@ -27,17 +27,26 @@ static unsigned char rifffile[8+4+8+16+8+256] = "RIFF\x24\x01\x00\x00WAVE" /* he
         "fmt \x10\x00\x00\x00\x01\x00\x20\x00\xAC\x44\x00\x00\x10\xB1\x02\x00\x04\x00\x10\x00" /* format segment: PCM, 2 chan, 44100 Hz, 16 bits */
         "data\x00\x01\x00\x00"; /* 256 byte data segment (silence) */
 
+static BOOL missing_dmloader(void)
+{
+    IDirectMusicLoader *dml;
+    HRESULT hr = CoCreateInstance(&CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC_SERVER,
+            &IID_IDirectMusicLoader, (void**)&dml);
+
+    if (hr == S_OK && dml)
+    {
+        IDirectMusicLoader_Release(dml);
+        return FALSE;
+    }
+    return TRUE;
+}
+
 static void test_release_object(void)
 {
     HRESULT hr;
     IDirectMusicLoader8* loader = NULL;
 
     hr = CoCreateInstance(&CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, &IID_IDirectMusicLoader8, (void**)&loader);
-    if ( FAILED(hr) )
-    {
-        skip("CoCreateInstance failed.\n");
-        return;
-    }
 
     hr = IDirectMusicLoader_ReleaseObject(loader, NULL);
     ok(hr == E_POINTER, "Expected E_POINTER, received %#x\n", hr);
@@ -128,6 +137,13 @@ static void test_simple_playing(void)
 START_TEST(loader)
 {
     CoInitialize(NULL);
+
+    if (missing_dmloader())
+    {
+        skip("dmloader not available\n");
+        CoUninitialize();
+        return;
+    }
     test_release_object();
     test_simple_playing();
     CoUninitialize();
-- 
1.8.3.1



More information about the wine-patches mailing list