[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