[PATCH 0/1] MR4413: advapi32/tests: Fix a service stop race condition.
If some Windows services stop while testing EnumServicesStatusW()'s resume handle support, one possibility is that the still running services all fit in the specified buffer, invalidating the test so there is a retry in place. But in some cases the second call just returns fewer tests than expected. So retry in that case too. Wine-Bug: https://bugs.winehq.org//show_bug.cgi?id=53460 --- This fixes the remaining failures on Windows 8. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4413
From: Francois Gouget <fgouget(a)codeweavers.com> If some Windows services stop while testing EnumServicesStatusW()'s resume handle support, one possibility is that the still running services all fit in the specified buffer, invalidating the test so there is a retry in place. But in some cases the second call just returns fewer tests than expected. So retry in that case too. Wine-Bug: https://bugs.winehq.org//show_bug.cgi?id=53460 --- This fixes the remaining failures on Windows 8. --- dlls/advapi32/tests/service.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/advapi32/tests/service.c b/dlls/advapi32/tests/service.c index 4e6aebb445d..3fb1bda1d7d 100644 --- a/dlls/advapi32/tests/service.c +++ b/dlls/advapi32/tests/service.c @@ -1370,6 +1370,8 @@ static BOOL test_enum_svc(int attempt) goto retry; /* service start race condition */ ok(ret, "Expected success, got error %lu\n", GetLastError()); ok(needed == 0, "Expected 0 needed bytes as we are done, got %lu\n", needed); + if (returned < missing && strcmp(winetest_platform, "wine") && attempt) + goto retry; /* service stop race condition */ todo_wine ok(returned == missing, "Expected %lu remaining services, got %lu\n", missing, returned); ok(resume == 0, "Expected the resume handle to be 0\n"); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4413
participants (2)
-
Francois Gouget -
Francois Gouget (@fgouget)