From 0f78ecdf45147ff0e22278ba71aa68e218f2f898 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 3 Jul 2016 11:58:56 +0000 Subject: [PATCH] [WINMM_WINETEST] Sync with Wine Staging 1.9.11. CORE-11368 svn path=/trunk/; revision=71789 --- rostests/winetests/winmm/mci.c | 53 ++++++++++++++++++++++++++++----- rostests/winetests/winmm/midi.c | 8 ++--- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/rostests/winetests/winmm/mci.c b/rostests/winetests/winmm/mci.c index 7470ed11e31..7e9b33ae2c5 100644 --- a/rostests/winetests/winmm/mci.c +++ b/rostests/winetests/winmm/mci.c @@ -721,10 +721,8 @@ static void test_recordWAVE(HWND hwnd) /* A few ME machines pass all tests except set format tag pcm! */ err = mciSendStringA("record x to 2000 wait", NULL, 0, hwnd); ok(err || !ok_pcm,"can record yet set wave format pcm returned %s\n", dbg_mcierr(ok_pcm)); - if(!ndevs) todo_wine /* with sound disabled */ - ok(ndevs>0 ? !err : err==MCIERR_WAVE_INPUTSUNSUITABLE,"mci record to 2000 returned %s\n", dbg_mcierr(err)); - else - ok(ndevs>0 ? !err : err==MCIERR_WAVE_INPUTSUNSUITABLE,"mci record to 2000 returned %s\n", dbg_mcierr(err)); + todo_wine_if (!ndevs) /* with sound disabled */ + ok(ndevs > 0 ? !err : err == MCIERR_WAVE_INPUTSUNSUITABLE, "mci record to 2000 returned %s\n", dbg_mcierr(err)); if(err) { if (err==MCIERR_WAVE_INPUTSUNSUITABLE) skip("Please install audio driver. Everything is skipped.\n"); @@ -1165,10 +1163,8 @@ static void test_AutoOpenWAVE(HWND hwnd) test_notification(hwnd, "-prior to auto-open-", 0); err = mciSendStringA("play tempfile.wav notify", buf, sizeof(buf), hwnd); - if(ok_saved==MCIERR_FILE_NOT_FOUND) todo_wine /* same as above */ - ok(err==MCIERR_NOTIFY_ON_AUTO_OPEN,"mci auto-open play notify returned %s\n", dbg_mcierr(err)); - else - ok(err==MCIERR_NOTIFY_ON_AUTO_OPEN,"mci auto-open play notify returned %s\n", dbg_mcierr(err)); + todo_wine_if (ok_saved == MCIERR_FILE_NOT_FOUND) /* same as above */ + ok(err==MCIERR_NOTIFY_ON_AUTO_OPEN,"mci auto-open play notify returned %s\n", dbg_mcierr(err)); if(err) /* FIXME: don't open twice yet, it confuses Wine. */ err = mciSendStringA("play tempfile.wav", buf, sizeof(buf), hwnd); @@ -1395,6 +1391,46 @@ static void test_asyncWaveTypeMpegvideo(HWND hwnd) test_notification(hwnd,"play (aborted by close)",MCI_NOTIFY_ABORTED); } +static DWORD CALLBACK thread_cb(void *p) +{ + HANDLE evt = p; + MCIERROR mr; + + mr = mciSendStringA("play x", NULL, 0, NULL); + ok(mr == MCIERR_INVALID_DEVICE_NAME, "play gave: 0x%x\n", mr); + + mr = mciSendStringA("close x", NULL, 0, NULL); + ok(mr == MCIERR_INVALID_DEVICE_NAME, "close gave: 0x%x\n", mr); + + SetEvent(evt); + + return 0; +} + +static void test_threads(void) +{ + MCIERROR mr; + HANDLE evt; + + mr = mciSendStringA("open tempfile.wav alias x", NULL, 0, NULL); + ok(mr == 0 || mr == ok_saved, "open gave: 0x%x\n", mr); + if(mr){ + skip("Cannot open tempfile.wav for playing (%s), skipping\n", dbg_mcierr(mr)); + return; + } + + evt = CreateEventW( NULL, TRUE, FALSE, NULL ); + + CloseHandle(CreateThread(NULL, 0, &thread_cb, evt, 0, NULL)); + + WaitForSingleObject(evt, INFINITE); + + CloseHandle(evt); + + mr = mciSendStringA("close x", NULL, 0, NULL); + ok(mr == 0, "close gave: 0x%x\n", mr); +} + START_TEST(mci) { char curdir[MAX_PATH], tmpdir[MAX_PATH]; @@ -1411,6 +1447,7 @@ START_TEST(mci) test_openCloseWAVE(hwnd); test_recordWAVE(hwnd); if(waveOutGetNumDevs()){ + test_threads(); test_playWAVE(hwnd); test_asyncWAVE(hwnd); test_AutoOpenWAVE(hwnd); diff --git a/rostests/winetests/winmm/midi.c b/rostests/winetests/winmm/midi.c index 2f20e18e948..6997821d500 100644 --- a/rostests/winetests/winmm/midi.c +++ b/rostests/winetests/winmm/midi.c @@ -802,11 +802,9 @@ static void test_midi_outfns(HWND hwnd) ok(rc==MMSYSERR_BADDEVICEID || broken(rc==MMSYSERR_NODRIVER /*nt,w2k*/), "midiOutGetDevCaps MAPPER with no MIDI rc=%s\n", mmsys_error(rc)); rc = midiOutOpen(&hm, MIDIMAPPER, 0, 0, CALLBACK_NULL); - if (rc==MIDIERR_INVALIDSETUP) todo_wine /* Wine without snd-seq */ - ok(rc==MMSYSERR_BADDEVICEID || broken(rc==MMSYSERR_NODRIVER /*w2k*/), "midiOutOpen MAPPER with no MIDI rc=%s\n", mmsys_error(rc)); - else - ok(rc==MMSYSERR_BADDEVICEID || broken(rc==MMSYSERR_NODRIVER /*w2k sound disabled*/), - "midiOutOpen MAPPER with no MIDI rc=%s\n", mmsys_error(rc)); + todo_wine_if (rc == MIDIERR_INVALIDSETUP) /* Wine without snd-seq */ + ok(rc == MMSYSERR_BADDEVICEID || broken(rc == MMSYSERR_NODRIVER /*w2k sound disabled*/), + "midiOutOpen MAPPER with no MIDI rc=%s\n", mmsys_error(rc)); if (!rc) { rc = midiOutClose(hm); ok(!rc, "midiOutClose rc=%s\n", mmsys_error(rc));