Jörg Höhle : winmm/tests: Fix one mcicda test failure on VMware.

Alexandre Julliard julliard at winehq.org
Wed Oct 27 12:51:02 CDT 2010


Module: wine
Branch: master
Commit: 8cf585f69e1f256f26c01f46969835701c8222ea
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8cf585f69e1f256f26c01f46969835701c8222ea

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Wed Sep 22 07:47:34 2010 +0200

winmm/tests: Fix one mcicda test failure on VMware.

---

 dlls/winmm/tests/mcicda.c |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/dlls/winmm/tests/mcicda.c b/dlls/winmm/tests/mcicda.c
index c396a01..acd03f0 100644
--- a/dlls/winmm/tests/mcicda.c
+++ b/dlls/winmm/tests/mcicda.c
@@ -83,6 +83,8 @@ static DWORD MSF_Add(DWORD d1, DWORD d2)
     return MCI_MAKE_MSF(m,s,f);
 }
 
+static MCIERROR ok_open = 0; /* MCIERR_CANNOT_LOAD_DRIVER */
+
 /* TODO show that shareable flag is not what Wine implements. */
 
 static void test_play(HWND hwnd)
@@ -99,6 +101,7 @@ static void test_play(HWND hwnd)
     err = mciSendString("open cdaudio alias c notify shareable", buf, sizeof(buf), hwnd);
     ok(!err || err == MCIERR_CANNOT_LOAD_DRIVER || err == MCIERR_MUST_USE_SHAREABLE,
        "mci open cdaudio notify returned %s\n", dbg_mcierr(err));
+    ok_open = err;
     test_notification(hwnd, "open alias notify", err ? 0 : MCI_NOTIFY_SUCCESSFUL);
     /* Native returns MUST_USE_SHAREABLE when there's trouble with the hardware
      * (e.g. unreadable disk) or when Media Player already has the device open,
@@ -110,6 +113,11 @@ static void test_play(HWND hwnd)
     }
     wDeviceID = atoi(buf);
     ok(!strcmp(buf,"1"), "mci open deviceId: %s, expected 1\n", buf);
+    /* Win9X-ME may start the MCI and media player upon insertion of a CD. */
+
+    err = mciSendString("sysinfo all name 1 open", buf, sizeof(buf), NULL);
+    ok(!err,"sysinfo all name 1 returned %s\n", dbg_mcierr(err));
+    if(!err && wDeviceID != 1) trace("Device '%s' is open.\n", buf);
 
     err = mciSendString("capability c has video notify", buf, sizeof(buf), hwnd);
     ok(!err, "capability video: %s\n", dbg_mcierr(err));
@@ -267,12 +275,16 @@ static void test_play(HWND hwnd)
     ok(!err, "status mode: %s\n", dbg_mcierr(err));
     if(!err) ok(!strcmp(buf, "stopped"), "status mode after seek is %s\n", buf);
 
-    /* MCICDA ignores MCI_SET_VIDEO
-     * One xp machine ignored SET_AUDIO, one w2k and one w7 machine honoured it
+    /* MCICDA ignores MCI_SET_VIDEO */
+    err = mciSendString("set c video on", buf, sizeof(buf), hwnd);
+    ok(!err, "set video: %s\n", dbg_mcierr(err));
+
+    /* One xp machine ignored SET_AUDIO, one w2k and one w7 machine honoured it
      * and simultaneously toggled the mute button in the mixer control panel.
-     * Or does it only depend on the HW, not the OS? */
-    err = mciSendString("set c video audio all on", buf, sizeof(buf), hwnd);
-    ok(!err, "set video/audio: %s\n", dbg_mcierr(err));
+     * Or does it only depend on the HW, not the OS?
+     * Some vmware machines return MCIERR_HARDWARE. */
+    err = mciSendString("set c audio all on", buf, sizeof(buf), hwnd);
+    ok(!err || err == MCIERR_HARDWARE, "set audio: %s\n", dbg_mcierr(err));
 
     err = mciSendString("set c time format ms", buf, sizeof(buf), hwnd);
     ok(!err, "set time format ms: %s\n", dbg_mcierr(err));
@@ -542,6 +554,11 @@ static void test_openclose(HWND hwnd)
     MCI_PARMS_UNION parm;
     MCIERROR err;
     char drive[] = {'a',':','\\','X','\0'};
+    if (ok_open == MCIERR_CANNOT_LOAD_DRIVER) {
+        /* todo_wine Every open below should yield this same error. */
+        skip("CD-ROM device likely not installed or disabled.\n");
+        return;
+    }
 
     /* Bug in native since NT: After OPEN "c" without MCI_OPEN_ALIAS fails with
      * MCIERR_DEVICE_OPEN, any subsequent OPEN fails with EXTENSION_NOT_FOUND! */




More information about the wine-cvs mailing list