From: Francois Gouget fgouget@codeweavers.com
tryok() can be used to work around scheduling delays.
--- This provides an attempt_failed() use case. --- dlls/mmdevapi/tests/render.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index 8e000f03acb..b9955975158 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -2211,10 +2211,9 @@ static void test_worst_case(void) hr = IAudioClient_Start(ac); ok(hr == S_OK, "Start failed: %08lx\n", hr);
- for(i = 0; i <= 99; i++){ /* 100 x 10ms = 1 second */ + for(i = 0; i <= 99 && !attempt_failed(); i++){ /* 100 x 10ms = 1 second */ r = WaitForSingleObject(event, 60 + defp / 10000); - flaky_wine - ok(r == WAIT_OBJECT_0, "Wait iteration %d gave %lx\n", i, r); + tryok(r == WAIT_OBJECT_0, "Wait iteration %d gave %lx\n", i, r);
/* the app has nearly one period time to feed data */ Sleep((i % 10) * defp / 120000); @@ -2413,7 +2412,7 @@ START_TEST(render) test_simplevolume(); test_volume_dependence(); test_session_creation(); - test_worst_case(); + LOOP_ON_FLAKY_WINE_TESTS(3) test_worst_case(); test_endpointvolume();
IMMDevice_Release(dev);