winmm tests patch

Robert Reif reif at earthlink.net
Tue Jun 8 13:05:00 CDT 2004


Removes 11 bit sample size capture test because at least 2 manufacturers
sound cards on two different OSs seem to support this.
Add some invalid parameter checks to wave[In,Out]GetDevCaps.
One test is commented out because wine doesn't handle it properly.
Minor info printing cleanup.
-------------- next part --------------
Index: dlls/winmm/tests/capture.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/tests/capture.c,v
retrieving revision 1.5
diff -u -r1.5 capture.c
--- dlls/winmm/tests/capture.c	4 Jun 2004 17:58:00 -0000	1.5
+++ dlls/winmm/tests/capture.c	8 Jun 2004 17:57:21 -0000
@@ -172,6 +172,20 @@
     if (rc==MMSYSERR_BADDEVICEID || rc==MMSYSERR_NODRIVER)
         return;
 
+    rc=waveInGetDevCapsA(device,0,sizeof(caps));
+    ok(rc==MMSYSERR_INVALPARAM,
+       "waveInGetDevCapsA: MMSYSERR_INVALPARAM expected, got %s\n",wave_in_error(rc));
+
+#if 0 /* FIXME: this works on windows but crashes wine */
+    rc=waveInGetDevCapsA(device,1,sizeof(caps));
+    ok(rc==MMSYSERR_INVALPARAM,
+       "waveInGetDevCapsA: MMSYSERR_INVALPARAM expected, got %s\n",wave_in_error(rc));
+#endif
+
+    rc=waveInGetDevCapsA(device,&caps,4);
+    ok(rc==MMSYSERR_NOERROR,
+       "waveInGetDevCapsA: MMSYSERR_NOERROR expected, got %s\n",wave_in_error(rc));
+
     name=NULL;
     rc=waveInMessage((HWAVEIN)device, DRV_QUERYDEVICEINTERFACESIZE, (DWORD_PTR)&size, 0);
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_INVALPARAM || rc==MMSYSERR_NOTSUPPORTED,
@@ -235,27 +249,6 @@
     }
 
     /* Try invalid formats to test error handling */
-    trace("Testing invalid format: 11 bits per sample\n");
-    format.wFormatTag=WAVE_FORMAT_PCM;
-    format.nChannels=2;
-    format.wBitsPerSample=11;
-    format.nSamplesPerSec=22050;
-    format.nBlockAlign=format.nChannels*format.wBitsPerSample/8;
-    format.nAvgBytesPerSec=format.nSamplesPerSec*format.nBlockAlign;
-    format.cbSize=0;
-    oformat=format;
-    rc=waveInOpen(&win,device,&format,0,0,CALLBACK_NULL|WAVE_FORMAT_DIRECT);
-    ok(rc==WAVERR_BADFORMAT || rc==MMSYSERR_INVALFLAG || rc==MMSYSERR_INVALPARAM,
-       "waveInOpen: opening the device in 11 bit mode should fail %s: rc=%s\n",dev_name(device),wave_in_error(rc));
-    if (rc==MMSYSERR_NOERROR) {
-        trace("     got %ldx%2dx%d for %ldx%2dx%d\n",
-              format.nSamplesPerSec, format.wBitsPerSample,
-              format.nChannels,
-              oformat.nSamplesPerSec, oformat.wBitsPerSample,
-              oformat.nChannels);
-        waveInClose(win);
-    }
-
     trace("Testing invalid format: 2 MHz sample rate\n");
     format.wFormatTag=WAVE_FORMAT_PCM;
     format.nChannels=2;
Index: dlls/winmm/tests/wave.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/tests/wave.c,v
retrieving revision 1.29
diff -u -r1.29 wave.c
--- dlls/winmm/tests/wave.c	4 Jun 2004 17:58:00 -0000	1.29
+++ dlls/winmm/tests/wave.c	8 Jun 2004 17:57:21 -0000
@@ -355,18 +355,32 @@
 
     rc=waveOutGetDevCapsA(device,&caps,sizeof(caps));
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_BADDEVICEID || rc==MMSYSERR_NODRIVER,
-       "waveOutGetDevCapsA: failed to get capabilities of device %d: rc=%s\n",device,wave_out_error(rc));
+       "waveOutGetDevCapsA: failed to get capabilities of device %s: rc=%s\n",dev_name(device),wave_out_error(rc));
     if (rc==MMSYSERR_BADDEVICEID || rc==MMSYSERR_NODRIVER)
         return;
 
+    rc=waveOutGetDevCapsA(device,0,sizeof(caps));
+    ok(rc==MMSYSERR_INVALPARAM,
+       "waveOutGetDevCapsA: MMSYSERR_INVALPARAM expected, got %s\n",wave_out_error(rc));
+
+#if 0 /* FIXME: this works on windows but crashes wine */
+    rc=waveOutGetDevCapsA(device,(LPWAVEOUTCAPS)1,sizeof(caps));
+    ok(rc==MMSYSERR_INVALPARAM,
+       "waveOutGetDevCapsA: MMSYSERR_INVALPARAM expected, got %s\n",wave_out_error(rc));
+#endif
+
+    rc=waveOutGetDevCapsA(device,&caps,4);
+    ok(rc==MMSYSERR_NOERROR,
+       "waveOutGetDevCapsA: MMSYSERR_NOERROR expected, got %s\n",wave_out_error(rc));
+
     name=NULL;
     rc=waveOutMessage((HWAVEOUT)device, DRV_QUERYDEVICEINTERFACESIZE, (DWORD_PTR)&size, 0);
     ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_INVALPARAM || rc==MMSYSERR_NOTSUPPORTED,
-       "waveOutMessage: failed to get interface size for device: %d rc=%s\n",device,wave_out_error(rc));
+       "waveOutMessage: failed to get interface size for device: %s rc=%s\n",dev_name(device),wave_out_error(rc));
     if (rc==MMSYSERR_NOERROR) {
         wname = (WCHAR *)malloc(size);
         rc=waveOutMessage((HWAVEOUT)device, DRV_QUERYDEVICEINTERFACE, (DWORD_PTR)wname, size);
-        ok(rc==MMSYSERR_NOERROR,"waveOutMessage: failed to get interface name for device: %d rc=%s\n",device,wave_out_error(rc));
+        ok(rc==MMSYSERR_NOERROR,"waveOutMessage: failed to get interface name for device: %s rc=%s\n",dev_name(device),wave_out_error(rc));
         ok(lstrlenW(wname)+1==size/sizeof(WCHAR),"got an incorrect size: %ld instead of %d\n",size,(lstrlenW(wname)+1)*sizeof(WCHAR));
         if (rc==MMSYSERR_NOERROR) {
             name = malloc(size/sizeof(WCHAR));
@@ -378,8 +392,8 @@
         name=strdup("not supported");
     }
 
-    trace("  %d: \"%s\" (%s) %d.%d (%d:%d): channels=%d formats=%05lx support=%04lx(%s)\n",
-          device,caps.szPname,(name?name:"failed"),caps.vDriverVersion >> 8,
+    trace("  %s: \"%s\" (%s) %d.%d (%d:%d): channels=%d formats=%05lx support=%04lx(%s)\n",
+          dev_name(device),caps.szPname,(name?name:"failed"),caps.vDriverVersion >> 8,
           caps.vDriverVersion & 0xff,
           caps.wMid,caps.wPid,
           caps.wChannels,caps.dwFormats,caps.dwSupport,wave_out_caps(caps.dwSupport));
@@ -448,7 +462,7 @@
     oformat=format;
     rc=waveOutOpen(&wout,device,&format,0,0,CALLBACK_NULL|WAVE_FORMAT_DIRECT);
     ok(rc==WAVERR_BADFORMAT || rc==MMSYSERR_INVALFLAG || rc==MMSYSERR_INVALPARAM,
-       "waveOutOpen: opening the device in 11 bits mode should fail %d: rc=%s\n",device,wave_out_error(rc));
+       "waveOutOpen: opening the device in 11 bits mode should fail %s: rc=%s\n",dev_name(device),wave_out_error(rc));
     if (rc==MMSYSERR_NOERROR) {
         trace("     got %ldx%2dx%d for %ldx%2dx%d\n",
               format.nSamplesPerSec, format.wBitsPerSample,
@@ -469,7 +483,7 @@
     oformat=format;
     rc=waveOutOpen(&wout,device,&format,0,0,CALLBACK_NULL|WAVE_FORMAT_DIRECT);
     ok(rc==WAVERR_BADFORMAT || rc==MMSYSERR_INVALFLAG || rc==MMSYSERR_INVALPARAM,
-       "waveOutOpen: opening the device at 2 MHz sample rate should fail %d: rc=%s\n",device,wave_out_error(rc));
+       "waveOutOpen: opening the device at 2 MHz sample rate should fail %s: rc=%s\n",dev_name(device),wave_out_error(rc));
     if (rc==MMSYSERR_NOERROR) {
         trace("     got %ldx%2dx%d for %ldx%2dx%d\n",
               format.nSamplesPerSec, format.wBitsPerSample,


More information about the wine-patches mailing list