https://bugs.winehq.org/show_bug.cgi?id=39240
Bug ID: 39240 Summary: advapi32:service fails in some non-English locales Product: Wine Version: unspecified Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P2 Component: advapi32 Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
The following test failures happen specifically in some non-English locales:
service.c:382: Test failed: Expected failure service.c:383: Test failed: Expected ERROR_DUPLICATE_SERVICE_NAME, got 0 service.c:397: Test failed: Could not create the service : 1073 service.c:403: Test failed: Expected ERROR_ACCESS_DENIED, got 6 service.c:682: Test failed: Could not create the service : 1072 service.c:881: Test failed: Expected Spooler, got Winetest service.c:1829: Test failed: Could not create the service : 1072 service.c:2015: Test failed: Could not create the service : 1072 service.c:2313: Test failed: Could not create the service: 1072 service.c:2381: Test failed: Expected success, got error 1072 service.c:2405: Test failed: Expected success (err=1072) service.c:2427: Test failed: Expected success (err=6) service.c:2438: Test failed: Expected success, got error 1072 service.c:2442: Test failed: Expected success (err=6)
In particular they can be seen o the following WineTest boxes: fg-win7u64-1spie9-fr - Windows 7 Ultimate configured for a French locale fg-win7u64-1spie9-mx - Windows 7 Ultimate configured with a mix of locales (to help figure out exactly which Windows locale setting a test depends on) pelzflowin81pronvid - Windows 8.1 in a German locale
Note however that it works fine in other locales such as Hebrew (fg-win7u64-1spie9-he), Japanese (fg-win7u64-1spie9-ja and newtb-w7u) and Korean (fg-win7u64-1spie9-ko).
This tests regression was introduced by the following commit: commit f8ea5a73ce799ae7a8b8e3d9d5ae9d28511c1d8b Author: Paul Vriens paul.vriens.wine@gmail.com Date: Tue Jul 17 22:06:51 2007 +0200
advapi32/service: Test for duplicate displayname.
https://bugs.winehq.org/show_bug.cgi?id=39240
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source, testcase
https://bugs.winehq.org/show_bug.cgi?id=39240
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |35765
https://bugs.winehq.org/show_bug.cgi?id=39240
--- Comment #1 from François Gouget fgouget@codeweavers.com --- I have investigated this a bit on the French and Spanish locales of my Windows 7 Ultimate VM.
There are really two failures that cause all the others:
* On line ~382 in test_create_delete_svc() ret = GetServiceDisplayNameA(scm_handle, spooler, display, &display_size); ... svc_handle1 = CreateServiceA(scm_handle, servicename, display, 0, SERVICE_WIN32_OWN_PROCESS, SERVICE_DISABLED, 0, pathname, NULL, NULL, NULL, NULL, NULL);
* On line ~872 in test_get_servicekeyname() GetServiceDisplayNameA(scm_handle, spooler, displayname, &displaysize); ... ret = GetServiceKeyNameA(scm_handle, displayname, NULL, &servicesize);
In both cases we query the display name and try to use that to create or query a service. The thing is that the returned display name depends on the locale: * English : Print Spooler * Japanese : Print Spooler * French : Spouleur dimpression (there's a weird apostrophe in there) * Spanish : Cola de impresión * German : Druckwarteschlange
Modifying the test to use the unlocalized string, "Print Spooler", fixes it. I suspect that in most locales, such as Japanese, they did not bother localizing that string, hence why the test works in most locales.
There also the fact that Windows 7 Ultimate can be configured for any locale. For instance in the registry the DisplayName key for the Spooler service is set to:
@%systemroot%\system32\spoolsv.exe,-1
In older Windows versions the localization was often hardcoded. So for instance it's possible that in a German Windows XP using "Druckwarteschlange" would work. However I don't have access to such a configuration.
https://bugs.winehq.org/show_bug.cgi?id=39240
--- Comment #2 from François Gouget fgouget@codeweavers.com --- Actually I do have access to a French Windows XP machine: fgtb-fgtbwinxp. advapi32:service succeeds on that machine despite the display name being "Spouleur d'impression" for these tests.
Interestingly the DisplayName value in HKLM\SYSTEM\CurrentControlSet\Services\Spooler matches the above value, meaning it's not using MUI (which I believe is only supported in Vista+ in this case), which is probably why those tests succeed.
https://bugs.winehq.org/show_bug.cgi?id=39240
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WORKSFORME
--- Comment #3 from François Gouget fgouget@codeweavers.com --- These failures disappeared with the switch to Windows 10 21H1. The translations in the TestBot's Windows 10 2004 configuration look like they were incomplete which may have been the cause for these failures.
In any case it is working now so I am marking this bug as resolved.
https://bugs.winehq.org/show_bug.cgi?id=39240
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Ken Sharp imwellcushtymelike@gmail.com --- Closing bugs marked workforme in 2021.