[2/2]kernel32/tests: Test the collation table much more
André Hentschel
nerv at dawncrow.de
Wed Jun 16 12:48:52 CDT 2010
I added some ranges to test, so it is easy extensible
---
dlls/kernel32/tests/locale.c | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index b44a657..02ff139 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -1352,6 +1352,43 @@ static void test_CompareStringA(void)
ok(ret == -1, "\"#\" vs \".\" expected -1, got %d\n", ret);
}
+static void test_CompareStringW(void)
+{
+ int ret, i, j;
+ WCHAR wchar1[2], wchar2[2];
+ LCID lcid = MAKELCID(MAKELANGID(LANG_FRENCH, SUBLANG_DEFAULT), SORT_DEFAULT);
+ static const struct varblock
+ {
+ const WCHAR start;
+ const UINT length;
+ } varblocks[] =
+ {
+ {0x055b, 5},
+ {0x2630, 58},
+ };
+
+ SetLastError(0xdeadbeef);
+ CompareStringW(lcid, NORM_IGNORECASE, wchar1, -1, wchar2, -1);
+ if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ win_skip("CompareStringW is not implemented\n");
+ return;
+ }
+
+ wchar1[1] = wchar2[1] = 0;
+
+ for (i = 0; i < sizeof(varblocks)/sizeof(varblocks[0]); i++)
+ {
+ for (j = 0; j < (varblocks[i].length-1); j++)
+ {
+ wchar1[0] = varblocks[i].start + j;
+ wchar2[0] = varblocks[i].start + j + 1;
+ ret = CompareStringW(lcid, NORM_IGNORECASE, wchar1, -1, wchar2, -1);
+ ok(ret == CSTR_LESS_THAN, "%x: expected CSTR_LESS_THAN, got %d\n", varblocks[i].start + j, ret);
+ }
+ }
+}
+
static void test_LCMapStringA(void)
{
int ret, ret2;
@@ -2668,6 +2705,7 @@ START_TEST(locale)
test_GetCurrencyFormatA(); /* Also tests the W version */
test_GetNumberFormatA(); /* Also tests the W version */
test_CompareStringA();
+ test_CompareStringW();
test_LCMapStringA();
test_LCMapStringW();
test_FoldStringA();
--
Best Regards, André Hentschel
More information about the wine-patches
mailing list