Francois Gouget : advapi32/tests: Time zones should have both MUI and regular strings.

Alexandre Julliard julliard at winehq.org
Mon May 17 15:45:32 CDT 2021


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

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Mon May 17 16:53:55 2021 +0200

advapi32/tests: Time zones should have both MUI and regular strings.

However a few time zones were missing the MUI display name in some
Windows 1809 versions.

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

---

 dlls/advapi32/tests/registry.c | 65 ++++++++++++++++++++++++++++++------------
 1 file changed, 46 insertions(+), 19 deletions(-)

diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
index 66382876fa5..72423eae94c 100644
--- a/dlls/advapi32/tests/registry.c
+++ b/dlls/advapi32/tests/registry.c
@@ -4012,9 +4012,8 @@ static void test_EnumDynamicTimeZoneInformation(void)
 {
     LSTATUS status;
     HKEY key, subkey;
-    WCHAR name[32];
+    WCHAR name[128];
     WCHAR keyname[128];
-    WCHAR displayname[128];
     WCHAR sysdir[MAX_PATH];
     DWORD index, ret, gle, size;
     DYNAMIC_TIME_ZONE_INFORMATION bogus_dtzi, dtzi;
@@ -4058,6 +4057,7 @@ static void test_EnumDynamicTimeZoneInformation(void)
     index = 0;
     while (!(status = RegEnumKeyW(key, index, keyname, ARRAY_SIZE(keyname))))
     {
+        winetest_push_context("%s" , wine_dbgstr_w(keyname));
         subkey = NULL;
         status = RegOpenKeyExW(key, keyname, 0, KEY_QUERY_VALUE, &subkey);
         ok(status == ERROR_SUCCESS, "got %d\n", status);
@@ -4079,31 +4079,57 @@ static void test_EnumDynamicTimeZoneInformation(void)
         {
             size = sizeof(name);
             memset(name, 0, sizeof(name));
+            status = pRegGetValueW(subkey, NULL, L"Std", RRF_RT_REG_SZ, NULL, name, &size);
+            ok(status == ERROR_SUCCESS, "status %d Std %s\n", status,
+               wine_dbgstr_w(name));
+            ok(*name, "Std name is empty\n");
             if (pRegLoadMUIStringW)
+            {
+                size = sizeof(name);
+                memset(name, 0, sizeof(name));
                 status = pRegLoadMUIStringW(subkey, L"MUI_Std", name, size, &size, 0, sysdir);
-            else
-                status = pRegGetValueW(subkey, NULL, L"Std", RRF_RT_REG_SZ, NULL, name, &size);
-            ok(status == ERROR_SUCCESS, "status %d name %s\n", status, wine_dbgstr_w(name));
-            ok(!memcmp(&dtzi.StandardName, name, size),
-                "expected %s, got %s\n", wine_dbgstr_w(name), wine_dbgstr_w(dtzi.StandardName));
+                ok(status == ERROR_SUCCESS, "status %d MUI_Std %s\n",
+                   status, wine_dbgstr_w(name));
+                ok(*name, "MUI_Std name is empty\n");
+            }
+            ok(!memcmp(&dtzi.StandardName, name, size), "expected %s, got %s\n",
+               wine_dbgstr_w(name), wine_dbgstr_w(dtzi.StandardName));
 
             size = sizeof(name);
             memset(name, 0, sizeof(name));
+            status = pRegGetValueW(subkey, NULL, L"Dlt", RRF_RT_REG_SZ, NULL, name, &size);
+            ok(status == ERROR_SUCCESS, "status %d %s Dlt %s\n",
+               status, wine_dbgstr_w(keyname), wine_dbgstr_w(name));
+            ok(*name, "Dlt name is empty\n");
             if (pRegLoadMUIStringW)
+            {
+                size = sizeof(name);
+                memset(name, 0, sizeof(name));
                 status = pRegLoadMUIStringW(subkey, L"MUI_Dlt", name, size, &size, 0, sysdir);
-            else
-                status = pRegGetValueW(subkey, NULL, L"Dlt", RRF_RT_REG_SZ, NULL, name, &size);
-            ok(status == ERROR_SUCCESS, "status %d name %s\n", status, wine_dbgstr_w(name));
-            ok(!memcmp(&dtzi.DaylightName, name, size),
-                "expected %s, got %s\n", wine_dbgstr_w(name), wine_dbgstr_w(dtzi.DaylightName));
-
-            size = sizeof(displayname);
-            memset(displayname, 0, sizeof(displayname));
+                ok(status == ERROR_SUCCESS, "status %d %s MUI_Dlt %s\n",
+                   status, wine_dbgstr_w(keyname), wine_dbgstr_w(name));
+                ok(*name, "MUI_Dlt name is empty\n");
+            }
+            ok(!memcmp(&dtzi.DaylightName, name, size), "expected %s, got %s\n",
+               wine_dbgstr_w(name), wine_dbgstr_w(dtzi.DaylightName));
+
+            size = sizeof(name);
+            memset(name, 0, sizeof(name));
+            status = pRegGetValueW(subkey, NULL, L"Display", RRF_RT_REG_SZ, NULL, name, &size);
+            ok(status == ERROR_SUCCESS, "status %d %s Display %s\n",
+               status, wine_dbgstr_w(keyname), wine_dbgstr_w(name));
+            ok(*name, "Display name is empty\n");
             if (pRegLoadMUIStringW)
-                status = pRegLoadMUIStringW(subkey, L"MUI_Display", displayname, size, &size, 0, sysdir);
-            else
-                status = pRegGetValueW(subkey, NULL, L"Display", RRF_RT_REG_SZ, NULL, displayname, &size);
-            todo_wine ok(status == ERROR_SUCCESS, "status %d displayname %s\n", status, wine_dbgstr_w(displayname));
+            {
+                size = sizeof(name);
+                memset(name, 0, sizeof(name));
+                status = pRegLoadMUIStringW(subkey, L"MUI_Display", name, size, &size, 0, sysdir);
+                /* recently added time zones may not have MUI strings */
+                todo_wine ok((status == ERROR_SUCCESS && *name) ||
+                   broken(status == ERROR_RESOURCE_TYPE_NOT_FOUND) /* Win10 1809 32-bit */ ||
+                   broken(status == ERROR_MUI_FILE_NOT_FOUND) /* Win10 1809 64-bit */,
+                   "status %d MUI_Display %s\n", status, wine_dbgstr_w(name));
+            }
         }
         else
         {
@@ -4132,6 +4158,7 @@ static void test_EnumDynamicTimeZoneInformation(void)
             "expected %s, got %s\n",
             dbgstr_SYSTEMTIME(&tz_data.dlt_date), dbgstr_SYSTEMTIME(&dtzi.DaylightDate));
 
+        winetest_pop_context();
         RegCloseKey(subkey);
         index++;
     }




More information about the wine-cvs mailing list