Module: wine Branch: master Commit: b771d417d8f7f514ea57ff41e06cb96f912b48e8 URL: https://gitlab.winehq.org/wine/wine/-/commit/b771d417d8f7f514ea57ff41e06cb96...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Dec 13 14:10:51 2022 +0100
kernel32/tests: Fix a string comparison test in utf-8 locales.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52964
---
dlls/kernel32/tests/locale.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c index 723c24873c6..40706c15755 100644 --- a/dlls/kernel32/tests/locale.c +++ b/dlls/kernel32/tests/locale.c @@ -1816,8 +1816,13 @@ static void test_CompareStringA(void) static const char ABC_FF[] = {'A','B','C',0,0xFF}; int ret, i; char a[256]; + BOOL is_utf8; + CPINFOEXA cpinfo; LCID lcid = MAKELCID(MAKELANGID(LANG_FRENCH, SUBLANG_DEFAULT), SORT_DEFAULT);
+ GetCPInfoExA( CP_ACP, 0, &cpinfo ); + is_utf8 = cpinfo.CodePage == CP_UTF8; + for (i = 0; i < ARRAY_SIZE(comparestringa_data); i++) { const struct comparestringa_entry *entry = &comparestringa_data[i]; @@ -1945,13 +1950,13 @@ static void test_CompareStringA(void) ret = CompareStringA(LOCALE_USER_DEFAULT, 0, ABC_EE, 3, ABC_FF, 3); ok(ret == CSTR_EQUAL, "expected CSTR_EQUAL, got %d\n", ret); ret = CompareStringA(LOCALE_USER_DEFAULT, 0, ABC_EE, 5, ABC_FF, 3); - ok(ret == CSTR_GREATER_THAN, "expected CSTR_GREATER_THAN, got %d\n", ret); + ok(ret == CSTR_GREATER_THAN || (is_utf8 && ret == CSTR_EQUAL), "expected CSTR_GREATER_THAN, got %d\n", ret); ret = CompareStringA(LOCALE_USER_DEFAULT, 0, ABC_EE, 3, ABC_FF, 5); - ok(ret == CSTR_LESS_THAN, "expected CSTR_LESS_THAN, got %d\n", ret); + ok(ret == CSTR_LESS_THAN || (is_utf8 && ret == CSTR_EQUAL), "expected CSTR_LESS_THAN, got %d\n", ret); ret = CompareStringA(LOCALE_USER_DEFAULT, 0, ABC_EE, 5, ABC_FF, 5); - ok(ret == CSTR_LESS_THAN, "expected CSTR_LESS_THAN, got %d\n", ret); + ok(ret == CSTR_LESS_THAN || (is_utf8 && ret == CSTR_EQUAL), "expected CSTR_LESS_THAN, got %d\n", ret); ret = CompareStringA(LOCALE_USER_DEFAULT, 0, ABC_FF, 5, ABC_EE, 5); - ok(ret == CSTR_GREATER_THAN, "expected CSTR_GREATER_THAN, got %d\n", ret); + ok(ret == CSTR_GREATER_THAN || (is_utf8 && ret == CSTR_EQUAL), "expected CSTR_GREATER_THAN, got %d\n", ret); }
static void test_CompareStringW(void)