winmm/tests: waveOutGetDevCaps called with invalid size

Peter Åstrand astrand at cendio.se
Mon Apr 28 01:59:14 CDT 2008


> > And what is the error?  If you know the error code returned, Ill add it 
> > to the code so we can end this discussion.
> 
> The error is MMSYSERR_INVALPARAM. 

I can see that this patch has now been committed:

--- wine/dlls/winmm/tests/wave.c:1.67   Fri Feb 29 06:18:36 2008
+++ wine/dlls/winmm/tests/wave.c        Fri Apr 25 08:12:48 2008
@@ -854,9 +854,9 @@
     }

     rc=waveOutGetDevCapsA(device,&capsA,4);
-    ok(rc==MMSYSERR_NOERROR,
-       "waveOutGetDevCapsA(%s): MMSYSERR_NOERROR expected, got %s\n",
-       dev_name(device),wave_out_error(rc));
+    ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_INVALPARAM,
+       "waveOutGetDevCapsA(%s): MMSYSERR_NOERROR or MMSYSERR_INVALPARAM "
+       "expected, got %s\n", dev_name(device),wave_out_error(rc));


However, the waveOutGetDevCapsW fails as well on WTS, also returning 
MMSYSERR_INVALPARAM. 

We could add MMSYSERR_INVALPARAM as a valid return code, but again, if we 
accept both success and a bunch of failures, the test makes very little 
sense. 

Here's a patch that completely removes the odd tests:

--- wave.c      25 Apr 2008 13:12:48 -0000      1.68
+++ wave.c      28 Apr 2008 06:57:07 -0000
@@ -853,16 +853,6 @@
        "expected, got %s\n",dev_name(device),wave_out_error(rc));
     }

-    rc=waveOutGetDevCapsA(device,&capsA,4);
-    ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_INVALPARAM,
-       "waveOutGetDevCapsA(%s): MMSYSERR_NOERROR or MMSYSERR_INVALPARAM "
-       "expected, got %s\n", dev_name(device),wave_out_error(rc));
-
-    rc=waveOutGetDevCapsW(device,&capsW,4);
-    ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NOTSUPPORTED,
-       "waveOutGetDevCapsW(%s): MMSYSERR_NOERROR or MMSYSERR_NOTSUPPORTED 
"
-       "expected, got %s\n",dev_name(device),wave_out_error(rc));
-
     nameA=NULL;
     rc=waveOutMessage((HWAVEOUT)device, DRV_QUERYDEVICEINTERFACESIZE,
                       (DWORD_PTR)&size, 0);


Here's a patch that adds MMSYSERR_INVALPARAM as accepted return code:

--- wave.c      25 Apr 2008 13:12:48 -0000      1.68
+++ wave.c      28 Apr 2008 06:58:14 -0000
@@ -859,8 +859,8 @@
        "expected, got %s\n", dev_name(device),wave_out_error(rc));

     rc=waveOutGetDevCapsW(device,&capsW,4);
-    ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NOTSUPPORTED,
-       "waveOutGetDevCapsW(%s): MMSYSERR_NOERROR or MMSYSERR_NOTSUPPORTED 
"
+    ok(rc==MMSYSERR_NOERROR || rc==MMSYSERR_NOTSUPPORTED || rc==MMSYSERR_INVALPARAM,
+       "waveOutGetDevCapsW(%s): MMSYSERR_NOERROR or MMSYSERR_NOTSUPPORTED or MMSYSERR_INVALPARAM "
        "expected, got %s\n",dev_name(device),wave_out_error(rc));

     nameA=NULL;

Rgds, 
---
Peter Åstrand		ThinLinc Chief Developer
Cendio AB		http://www.cendio.se
Wallenbergs gata 4
583 30 Linköping	Phone: +46-13-21 46 00


More information about the wine-devel mailing list