Francois Gouget : advapi32/tests: Avoid failure when GetServiceKeyName() gets a smart quote.

Alexandre Julliard julliard at winehq.org
Wed Jan 29 16:24:08 CST 2020


Module: wine
Branch: master
Commit: 82aa066fccc63c8edcb6d9832f4fb48eb0483f64
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=82aa066fccc63c8edcb6d9832f4fb48eb0483f64

Author: Francois Gouget <fgouget at free.fr>
Date:   Mon Jan 27 14:22:51 2020 +0100

advapi32/tests: Avoid failure when GetServiceKeyName() gets a smart quote.

For non-English languages the Spooler display name may contain non-ASCII
characters, typically a smart quote. On Windows 7 GetServiceKeyName()
fails when it gets such characters.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/advapi32/tests/service.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/dlls/advapi32/tests/service.c b/dlls/advapi32/tests/service.c
index 3872666085..484167656f 100644
--- a/dlls/advapi32/tests/service.c
+++ b/dlls/advapi32/tests/service.c
@@ -720,6 +720,17 @@ static void test_get_displayname(void)
     CloseServiceHandle(scm_handle);
 }
 
+static int is_printable_ascii_str(const char *s)
+{
+    while (*s)
+    {
+        if (*s < 32 || *s >= 127)
+            return 0;
+        s++;
+    }
+    return 1;
+}
+
 static void test_get_servicekeyname(void)
 {
     SC_HANDLE scm_handle, svc_handle;
@@ -861,6 +872,14 @@ static void test_get_servicekeyname(void)
     servicesize = 0;
     ret = GetServiceKeyNameA(scm_handle, displayname, NULL, &servicesize);
     ok(!ret, "Expected failure\n");
+    if (!is_printable_ascii_str(displayname) &&
+        GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST)
+    {
+        win_skip("GetServiceKeyName() does not support non-ASCII display names: %s\n", displayname); /* Windows 7 */
+        CloseServiceHandle(scm_handle);
+        return; /* All the tests that follow will fail too */
+    }
+
     ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
        "Expected ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
 




More information about the wine-cvs mailing list