Paul Vriens : winmm/tests: Fix a test on win9x.

Alexandre Julliard julliard at winehq.org
Mon Sep 8 07:41:52 CDT 2008


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

Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date:   Sat Sep  6 14:16:19 2008 +0200

winmm/tests: Fix a test on win9x.

---

 dlls/winmm/tests/mmio.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/dlls/winmm/tests/mmio.c b/dlls/winmm/tests/mmio.c
index e945891..f07ab8d 100644
--- a/dlls/winmm/tests/mmio.c
+++ b/dlls/winmm/tests/mmio.c
@@ -302,24 +302,24 @@ static void test_mmioOpen(char *fname)
     memset(&mmio, 0, sizeof(mmio));
     mmio.fccIOProc = fname ? FOURCC_DOS : FOURCC_MEM;
     mmio.cchBuffer = 0;
-    mmio.pchBuffer = buf;
+    mmio.pchBuffer = NULL;
     hmmio = mmioOpen(fname, &mmio, MMIO_READ | MMIO_ALLOCBUF);
     ok(hmmio != 0, "mmioOpen error %u\n", mmio.wErrorRet);
 
     memset(&mmio, 0, sizeof(mmio));
     ret = mmioGetInfo(hmmio, &mmio, 0);
     ok(ret == MMSYSERR_NOERROR, "mmioGetInfo error %u\n", ret);
-    ok(mmio.dwFlags == MMIO_READ, "expected MMIO_READ, got %x\n", mmio.dwFlags);
+    ok(mmio.dwFlags == (MMIO_READ|MMIO_ALLOCBUF), "expected MMIO_READ|MMIO_ALLOCBUF, got %x\n", mmio.dwFlags);
     ok(mmio.wErrorRet == MMSYSERR_NOERROR, "expected MMSYSERR_NOERROR, got %u\n", mmio.wErrorRet);
     ok(mmio.fccIOProc == (fname ? FOURCC_DOS : FOURCC_MEM), "got %4.4s\n", (LPCSTR)&mmio.fccIOProc);
     ok(mmio.cchBuffer == MMIO_DEFAULTBUFFER, "expected MMIO_DEFAULTBUFFER, got %u\n", mmio.cchBuffer);
-    ok(mmio.pchBuffer == buf, "expected %p, got %p\n", buf, mmio.pchBuffer);
+    ok(mmio.pchBuffer != NULL, "expected not NULL\n");
 
     mmioClose(hmmio, 0);
 
     memset(&mmio, 0, sizeof(mmio));
     mmio.fccIOProc = fname ? FOURCC_DOS : FOURCC_MEM;
-    mmio.cchBuffer = 0;
+    mmio.cchBuffer = 256;
     mmio.pchBuffer = NULL;
     hmmio = mmioOpen(fname, &mmio, MMIO_READ | MMIO_ALLOCBUF);
     ok(hmmio != 0, "mmioOpen error %u\n", mmio.wErrorRet);
@@ -330,26 +330,32 @@ static void test_mmioOpen(char *fname)
     ok(mmio.dwFlags == (MMIO_READ|MMIO_ALLOCBUF), "expected MMIO_READ|MMIO_ALLOCBUF, got %x\n", mmio.dwFlags);
     ok(mmio.wErrorRet == MMSYSERR_NOERROR, "expected MMSYSERR_NOERROR, got %u\n", mmio.wErrorRet);
     ok(mmio.fccIOProc == (fname ? FOURCC_DOS : FOURCC_MEM), "got %4.4s\n", (LPCSTR)&mmio.fccIOProc);
-    ok(mmio.cchBuffer == MMIO_DEFAULTBUFFER, "expected MMIO_DEFAULTBUFFER, got %u\n", mmio.cchBuffer);
+    ok(mmio.cchBuffer == 256, "expected 256, got %u\n", mmio.cchBuffer);
     ok(mmio.pchBuffer != NULL, "expected not NULL\n");
 
     mmioClose(hmmio, 0);
 
     memset(&mmio, 0, sizeof(mmio));
     mmio.fccIOProc = fname ? FOURCC_DOS : FOURCC_MEM;
-    mmio.cchBuffer = 256;
-    mmio.pchBuffer = NULL;
+    mmio.cchBuffer = 0;
+    mmio.pchBuffer = buf;
     hmmio = mmioOpen(fname, &mmio, MMIO_READ | MMIO_ALLOCBUF);
+    if (!hmmio && mmio.wErrorRet == ERROR_BAD_FORMAT)
+    {
+        /* Seen on Win9x, WinMe but also XP-SP1 */
+        skip("Some Windows versions don't like a 0 size and a given buffer\n");
+        return;
+    }
     ok(hmmio != 0, "mmioOpen error %u\n", mmio.wErrorRet);
 
     memset(&mmio, 0, sizeof(mmio));
     ret = mmioGetInfo(hmmio, &mmio, 0);
     ok(ret == MMSYSERR_NOERROR, "mmioGetInfo error %u\n", ret);
-    ok(mmio.dwFlags == (MMIO_READ|MMIO_ALLOCBUF), "expected MMIO_READ|MMIO_ALLOCBUF, got %x\n", mmio.dwFlags);
+    ok(mmio.dwFlags == MMIO_READ, "expected MMIO_READ, got %x\n", mmio.dwFlags);
     ok(mmio.wErrorRet == MMSYSERR_NOERROR, "expected MMSYSERR_NOERROR, got %u\n", mmio.wErrorRet);
     ok(mmio.fccIOProc == (fname ? FOURCC_DOS : FOURCC_MEM), "got %4.4s\n", (LPCSTR)&mmio.fccIOProc);
-    ok(mmio.cchBuffer == 256, "expected 256, got %u\n", mmio.cchBuffer);
-    ok(mmio.pchBuffer != NULL, "expected not NULL\n");
+    ok(mmio.cchBuffer == MMIO_DEFAULTBUFFER, "expected MMIO_DEFAULTBUFFER, got %u\n", mmio.cchBuffer);
+    ok(mmio.pchBuffer == buf, "expected %p, got %p\n", buf, mmio.pchBuffer);
 
     mmioClose(hmmio, 0);
 }




More information about the wine-cvs mailing list