Dmitry Timoshkov : kernel32/tests: Add more tests for Get[*]PreferredUILanguages APIs.
Alexandre Julliard
julliard at winehq.org
Mon Mar 2 16:22:23 CST 2020
Module: wine
Branch: master
Commit: cac04651637f339720cfde3c0c58672477c777c5
URL: https://source.winehq.org/git/wine.git/?a=commit;h=cac04651637f339720cfde3c0c58672477c777c5
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Mon Mar 2 14:30:40 2020 +0800
kernel32/tests: Add more tests for Get[*]PreferredUILanguages APIs.
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/tests/locale.c | 63 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 62 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 8ff630a1eb..eff6c88b9e 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -5461,12 +5461,24 @@ static void test_GetSystemPreferredUILanguages(void)
"Expected last two WCHARs being empty, got 0x%x 0x%x\n",
buffer[size -2], buffer[size -1]);
+ size = 0;
+ SetLastError(0xdeadbeef);
+ ret = pGetSystemPreferredUILanguages(MUI_LANGUAGE_ID, &count, buffer, &size);
+todo_wine
+ ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
+todo_wine
+ ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
+ "Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+ ok(size == size_id, "expected %u, got %u\n", size_id, size);
+
size = 1;
SetLastError(0xdeadbeef);
ret = pGetSystemPreferredUILanguages(MUI_LANGUAGE_ID, &count, buffer, &size);
ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+todo_wine
+ ok(size == size_id, "expected %u, got %u\n", size_id, size);
size = size_id -1;
memset(buffer, 0x5a, size_buffer * sizeof(WCHAR));
@@ -5475,6 +5487,8 @@ static void test_GetSystemPreferredUILanguages(void)
ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+todo_wine
+ ok(size == size_id, "expected %u, got %u\n", size_id, size);
size = size_id -2;
memset(buffer, 0x5a, size_buffer * sizeof(WCHAR));
@@ -5483,6 +5497,8 @@ static void test_GetSystemPreferredUILanguages(void)
ok(!ret, "Expected GetSystemPreferredUILanguages to fail\n");
ok(ERROR_INSUFFICIENT_BUFFER == GetLastError(),
"Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+todo_wine
+ ok(size == size_id + 2 || size == size_id + 1 /* before win10 1809 */, "expected %u, got %u\n", size_id + 2, size);
HeapFree(GetProcessHeap(), 0, buffer);
}
@@ -5490,7 +5506,7 @@ static void test_GetSystemPreferredUILanguages(void)
static void test_GetThreadPreferredUILanguages(void)
{
BOOL ret;
- ULONG count, size;
+ ULONG count, size, size_id;
WCHAR *buf;
if (!pGetThreadPreferredUILanguages)
@@ -5510,6 +5526,51 @@ static void test_GetThreadPreferredUILanguages(void)
ret = pGetThreadPreferredUILanguages(MUI_LANGUAGE_ID|MUI_UI_FALLBACK, &count, buf, &size);
ok(ret, "got %u\n", GetLastError());
ok(count, "expected count > 0\n");
+
+ size_id = count = 0;
+ ret = pGetThreadPreferredUILanguages(MUI_LANGUAGE_ID, &count, NULL, &size_id);
+ ok(ret, "got %u\n", GetLastError());
+ ok(count, "expected count > 0\n");
+ ok(size_id, "expected size > 0\n");
+ ok(size_id <= size, "expected size > 0\n");
+
+ size = 0;
+ SetLastError(0xdeadbeef);
+ ret = pGetThreadPreferredUILanguages(MUI_LANGUAGE_ID, &count, buf, &size);
+todo_wine
+ ok(!ret, "Expected GetThreadPreferredUILanguages to fail\n");
+todo_wine
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
+ "Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+ ok(size == size_id, "expected %u, got %u\n", size_id, size);
+
+ size = 1;
+ SetLastError(0xdeadbeef);
+ ret = pGetThreadPreferredUILanguages(MUI_LANGUAGE_ID, &count, buf, &size);
+ ok(!ret, "Expected GetThreadPreferredUILanguages to fail\n");
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
+ "Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+todo_wine
+ ok(size == size_id, "expected %u, got %u\n", size_id, size);
+
+ size = size_id - 1;
+ SetLastError(0xdeadbeef);
+ ret = pGetThreadPreferredUILanguages(MUI_LANGUAGE_ID, &count, buf, &size);
+ ok(!ret, "Expected GetThreadPreferredUILanguages to fail\n");
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
+ "Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+todo_wine
+ ok(size == size_id, "expected %u, got %u\n", size_id, size);
+
+ size = size_id - 2;
+ SetLastError(0xdeadbeef);
+ ret = pGetThreadPreferredUILanguages(0, &count, buf, &size);
+ ok(!ret, "Expected GetThreadPreferredUILanguages to fail\n");
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
+ "Expected error ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
+todo_wine
+ ok(size == size_id || size == size_id - 1 /* before win10 1809 */, "expected %u, got %u\n", size_id, size);
+
HeapFree(GetProcessHeap(), 0, buf);
}
More information about the wine-cvs
mailing list