[PATCH 0/1] MR6339: reg/tests: Wait for TerminateProcess
Tests can fail (seen on slow VMs) because `GetExitCodeProcess` is called before the child process is marked as terminated. `STILL_ACTIVE` is returned instead of the expected `1`. dlls/kernel32/tests/loader.c#L3984 does a similar thing. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6339
From: Anders Kjersem <andersdev(a)proton.me> --- programs/reg/tests/add.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/programs/reg/tests/add.c b/programs/reg/tests/add.c index ae9c79b07ec..6e095920464 100644 --- a/programs/reg/tests/add.c +++ b/programs/reg/tests/add.c @@ -37,7 +37,10 @@ BOOL run_reg_exe_(const char *file, unsigned line, const char *cmd, DWORD *rc) ret = WaitForSingleObject(pi.hProcess, 10000); if (ret == WAIT_TIMEOUT) + { TerminateProcess(pi.hProcess, 1); + WaitForSingleObject(pi.hProcess, 3000); + } bret = GetExitCodeProcess(pi.hProcess, rc); lok(bret, "GetExitCodeProcess failed: %ld\n", GetLastError()); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6339
participants (2)
-
Anders Kjersem -
Anders Kjersem (@anders)