[PATCH 2/6] windows.media.speech/tests: Handle a possible race condition.
Bernhard Kölbl
wine at gitlab.winehq.org
Thu Jun 9 11:48:02 CDT 2022
From: Bernhard Kölbl <besentv at gmail.com>
Signed-off-by: Bernhard Kölbl <besentv at gmail.com>
---
dlls/windows.media.speech/tests/speech.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/windows.media.speech/tests/speech.c b/dlls/windows.media.speech/tests/speech.c
index 421819fd10a..7c870901de9 100644
--- a/dlls/windows.media.speech/tests/speech.c
+++ b/dlls/windows.media.speech/tests/speech.c
@@ -1122,13 +1122,15 @@ static void test_SpeechRecognizer(void)
compilation_result = (void*)0xdeadbeef;
hr = IAsyncOperation_SpeechRecognitionCompilationResult_GetResults(operation, &compilation_result);
+ if (hr == S_OK) /* Sometimes the operation could have already finished here, */
+ goto skip_await; /* if so skip waiting and getting the results a second time. */
+
ok(hr == E_ILLEGAL_METHOD_CALL, "Got unexpected hr %#lx.\n", hr);
ok(compilation_result == (void*)0xdeadbeef, "Compilation result had value %p.\n", compilation_result);
await_async_inspectable((IAsyncOperation_IInspectable *)operation,
&compilation_handler,
&IID_IAsyncOperationCompletedHandler_SpeechRecognitionCompilationResult);
- check_async_info((IInspectable *)operation, 1, Completed, S_OK);
hr = IAsyncOperation_SpeechRecognitionCompilationResult_put_Completed(operation, NULL);
ok(hr == E_ILLEGAL_DELEGATE_ASSIGNMENT, "Got unexpected hr %#lx.\n", hr);
@@ -1138,10 +1140,12 @@ static void test_SpeechRecognizer(void)
compilation_result = (void*)0xdeadbeef;
hr = IAsyncOperation_SpeechRecognitionCompilationResult_GetResults(operation, &compilation_result);
+skip_await:
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
-
check_interface(compilation_result, &IID_IAgileObject, TRUE);
+ check_async_info((IInspectable *)operation, 1, Completed, S_OK);
+
hr = ISpeechRecognitionCompilationResult_get_Status(compilation_result, &result_status);
ok(hr == S_OK, "ISpeechRecognitionCompilationResult_get_Status failed, hr %#lx.\n", hr);
ok(result_status == SpeechRecognitionResultStatus_Success, "Got unexpected status %#x.\n", result_status);
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/217
More information about the wine-devel
mailing list