Andrew Nguyen : winmm/tests: Refactor the mixerOpen and mixerClose tests and add a few additional test cases .

Alexandre Julliard julliard at winehq.org
Mon Dec 22 10:19:49 CST 2008


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

Author: Andrew Nguyen <arethusa26 at gmail.com>
Date:   Sun Dec 21 01:48:34 2008 -0600

winmm/tests: Refactor the mixerOpen and mixerClose tests and add a few additional test cases.

---

 dlls/winmm/tests/mixer.c |   93 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 65 insertions(+), 28 deletions(-)

diff --git a/dlls/winmm/tests/mixer.c b/dlls/winmm/tests/mixer.c
index 1827b29..d4227b4 100644
--- a/dlls/winmm/tests/mixer.c
+++ b/dlls/winmm/tests/mixer.c
@@ -174,6 +174,16 @@ static const char * control_flags(DWORD fdwControl)
     return flags;
 }
 
+static void test_mixerClose(HMIXER mix)
+{
+    MMRESULT rc;
+
+    rc = mixerClose(mix);
+    ok(rc == MMSYSERR_NOERROR || rc == MMSYSERR_INVALHANDLE,
+       "mixerClose: MMSYSERR_NOERROR or MMSYSERR_INVALHANDLE expected, got %s\n",
+       mmsys_error(rc));
+}
+
 static void mixer_test_controlA(HMIXER mix, LPMIXERCONTROLA control)
 {
     MMRESULT rc;
@@ -378,11 +388,6 @@ static void mixer_test_deviceA(int device)
     ok(rc==MMSYSERR_NOERROR,
        "mixerOpen: MMSYSERR_NOERROR expected, got %s\n",mmsys_error(rc));
     if (rc==MMSYSERR_NOERROR) {
-        rc=mixerOpen(&mix, device, 0, 0, CALLBACK_FUNCTION);
-        ok(rc==MMSYSERR_INVALFLAG
-           || rc==MMSYSERR_NOTSUPPORTED, /* 98/ME */
-           "mixerOpen: MMSYSERR_INVALFLAG or MMSYSERR_NOTSUPPORTED expected, got %s\n", mmsys_error(rc));
-
         for (d=0;d<capsA.cDestinations;d++) {
             MIXERLINEA mixerlineA;
             mixerlineA.cbStruct = 0;
@@ -551,10 +556,7 @@ static void mixer_test_deviceA(int device)
               }
             }
         }
-        rc=mixerClose(mix);
-        ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_INVALHANDLE,
-           "mixerClose: MMSYSERR_NOERROR or MMSYSERR_INVALHANDLE expected, got %s\n",
-           mmsys_error(rc));
+        test_mixerClose(mix);
     }
 }
 
@@ -769,10 +771,6 @@ static void mixer_test_deviceW(int device)
     ok(rc==MMSYSERR_NOERROR,
        "mixerOpen: MMSYSERR_NOERROR expected, got %s\n",mmsys_error(rc));
     if (rc==MMSYSERR_NOERROR) {
-        rc=mixerOpen(&mix, device, 0, 0, CALLBACK_FUNCTION);
-        ok(rc==MMSYSERR_INVALFLAG,
-           "mixerOpen: MMSYSERR_INVALFLAG expected, got %s\n", mmsys_error(rc));
-
         for (d=0;d<capsW.cDestinations;d++) {
             MIXERLINEW mixerlineW;
             mixerlineW.cbStruct = 0;
@@ -957,17 +955,13 @@ static void mixer_test_deviceW(int device)
                 }
             }
         }
-        rc=mixerClose(mix);
-        ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_INVALHANDLE,
-           "mixerClose: MMSYSERR_NOERROR or MMSYSERR_INVALHANDLE expected, got %s\n",
-           mmsys_error(rc));
+        test_mixerClose(mix);
     }
 }
 
 static void mixer_testsA(void)
 {
     MIXERCAPSA capsA;
-    HMIXER mix;
     MMRESULT rc;
     UINT ndev, d;
 
@@ -981,11 +975,6 @@ static void mixer_testsA(void)
        "mixerGetDevCapsA: MMSYSERR_BADDEVICEID expected, got %s\n",
        mmsys_error(rc));
 
-    rc=mixerOpen(&mix, ndev+1, 0, 0, 0);
-    ok(rc==MMSYSERR_BADDEVICEID,
-       "mixerOpen: MMSYSERR_BADDEVICEID expected, got %s\n",
-       mmsys_error(rc));
-
     for (d=0;d<ndev;d++)
         mixer_test_deviceA(d);
 }
@@ -993,7 +982,6 @@ static void mixer_testsA(void)
 static void mixer_testsW(void)
 {
     MIXERCAPSW capsW;
-    HMIXER mix;
     MMRESULT rc;
     UINT ndev, d;
 
@@ -1009,17 +997,66 @@ static void mixer_testsW(void)
     if (rc==MMSYSERR_NOTSUPPORTED)
         return;
 
-    rc=mixerOpen(&mix, ndev+1, 0, 0, 0);
-    ok(rc==MMSYSERR_BADDEVICEID,
+    for (d=0;d<ndev;d++)
+        mixer_test_deviceW(d);
+}
+
+static void test_mixerOpen()
+{
+    HMIXER mix;
+    MMRESULT rc;
+    UINT ndev, d;
+
+    ndev = mixerGetNumDevs();
+
+    /* Test mixerOpen with invalid device ID values. */
+    rc = mixerOpen(&mix, ndev + 1, 0, 0, 0);
+    ok(rc == MMSYSERR_BADDEVICEID,
        "mixerOpen: MMSYSERR_BADDEVICEID expected, got %s\n",
        mmsys_error(rc));
 
-    for (d=0;d<ndev;d++)
-        mixer_test_deviceW(d);
+    rc = mixerOpen(&mix, -1, 0, 0, 0);
+    ok(rc == MMSYSERR_BADDEVICEID,
+       "mixerOpen: MMSYSERR_BADDEVICEID expected, got %s\n",
+       mmsys_error(rc));
+
+    for (d = 0; d < ndev; d++) {
+        /* Test mixerOpen with valid device ID values and invalid parameters. */
+        rc = mixerOpen(&mix, d, 0, 0, CALLBACK_FUNCTION);
+        ok(rc == MMSYSERR_INVALFLAG
+           || rc == MMSYSERR_NOTSUPPORTED, /* 98/ME */
+           "mixerOpen: MMSYSERR_INVALFLAG expected, got %s\n",
+           mmsys_error(rc));
+
+        rc = mixerOpen(&mix, d, 0xdeadbeef, 0, CALLBACK_WINDOW);
+        ok(rc == MMSYSERR_INVALPARAM,
+           "mixerOpen: MMSYSERR_INVALPARAM expected, got %s\n",
+           mmsys_error(rc));
+
+        /* Test mixerOpen with a NULL dwCallback and CALLBACK_WINDOW flag. */
+        rc = mixerOpen(&mix, d, 0, 0, CALLBACK_WINDOW);
+        todo_wine
+        ok(rc == MMSYSERR_NOERROR,
+           "mixerOpen: MMSYSERR_NOERROR expected, got %s\n",
+           mmsys_error(rc));
+
+        if (rc == MMSYSERR_NOERROR)
+            test_mixerClose(mix);
+
+        /* Test mixerOpen with normal parameters. */
+        rc = mixerOpen(&mix, d, 0, 0, 0);
+        ok(rc == MMSYSERR_NOERROR,
+           "mixerOpen: MMSYSERR_NOERROR expected, got %s\n",
+           mmsys_error(rc));
+
+        if (rc == MMSYSERR_NOERROR)
+            test_mixerClose(mix);
+    }
 }
 
 START_TEST(mixer)
 {
+    test_mixerOpen();
     mixer_testsA();
     mixer_testsW();
 }




More information about the wine-cvs mailing list