From 340197f0f102095d74e482c2b1c22224bc0bcf14 Mon Sep 17 00:00:00 2001
From: Francois Gouget <fgouget@free.fr>
Date: Fri, 13 Nov 2020 12:29:21 +0100
Subject: [PATCH 3/3] mmdevapi:render: Loop and trace ratio between position
 and expected value.
To: Wine Devel <wine-devel@winehq.org>

---
 dlls/mmdevapi/tests/render.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c
index eaca42d6896..ffd5248cf96 100644
--- a/dlls/mmdevapi/tests/render.c
+++ b/dlls/mmdevapi/tests/render.c
@@ -1105,6 +1105,7 @@ static void test_clock(int share)
     ok(hr == S_OK, "GetPosition failed: %08x\n", hr);
     ok(pos > 0, "Position %u vs. last %u\n", (UINT)pos,0);
     /* in rare cases is slept*1.1 not enough with dmix */
+    trace("GetPos 1: share=%d ratio=%.2f\n", share, ((double)pos)*1000.0/freq/slept);
     ok(pos*1000/freq <= slept*1.4, "Position %u (%ums) too far after playing %ums\n", (UINT)pos, (UINT)(pos*1000/freq), slept);
     last = pos;
 
@@ -1118,6 +1119,7 @@ static void test_clock(int share)
     if(/*share &&*/ winetest_debug>1)
         ok(pos*1000/freq <= slept*1.1, "Position %u (%ums) too far after stop %ums\n", (UINT)pos, (UINT)(pos*1000/freq), slept);
 
+    if (0) {
     hr = IAudioClient_Start(ac); /* #2 */
     ok(hr == S_OK, "Start failed: %08x\n", hr);
 
@@ -1235,7 +1237,9 @@ static void test_clock(int share)
         ok(pos * pwfx->nSamplesPerSec == (sum-pad) * freq,
            "Position %u after stop vs. %u padding\n", (UINT)pos, pad);
     last = pos;
+    }
 
+    if (0) {
     /* Begin the big loop */
     hr = IAudioClient_Reset(ac);
     ok(hr == S_OK, "Reset failed: %08x\n", hr);
@@ -1398,6 +1402,7 @@ static void test_clock(int share)
 
     hr = IAudioClient_Stop(ac);
     ok(hr == S_OK, "Stop failed: %08x\n", hr);
+    }
 
     CoTaskMemFree(pwfx);
 
@@ -2369,6 +2374,7 @@ START_TEST(render)
 {
     HRESULT hr;
     DWORD mode;
+    int i;
 
     CoInitializeEx(NULL, COINIT_MULTITHREADED);
     hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, &IID_IMMDeviceEnumerator, (void**)&mme);
@@ -2389,6 +2395,7 @@ START_TEST(render)
         goto cleanup;
     }
 
+    if (0) {
     test_audioclient();
     test_formats(AUDCLNT_SHAREMODE_EXCLUSIVE);
     test_formats(AUDCLNT_SHAREMODE_SHARED);
@@ -2401,8 +2408,13 @@ START_TEST(render)
     }
     test_event();
     test_padding();
-    test_clock(1);
-    test_clock(0);
+    }
+    for (i = 0; i < 100; i++)
+    {
+        test_clock(1);
+        test_clock(0);
+    }
+    if (0) {
     test_session();
     test_streamvolume();
     test_channelvolume();
@@ -2411,6 +2423,7 @@ START_TEST(render)
     test_session_creation();
     test_worst_case();
     test_endpointvolume();
+    }
 
     IMMDevice_Release(dev);
 
-- 
2.20.1

