Alexandre Julliard : kernel32/tests: Add more Unicode digit ranges.

Alexandre Julliard julliard at winehq.org
Fri Mar 7 11:02:58 CST 2014


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Mar  7 13:37:14 2014 +0100

kernel32/tests: Add more Unicode digit ranges.

---

 dlls/kernel32/tests/locale.c |   46 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 40 insertions(+), 6 deletions(-)

diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c
index 62e9f01..9abe53e 100644
--- a/dlls/kernel32/tests/locale.c
+++ b/dlls/kernel32/tests/locale.c
@@ -2320,6 +2320,7 @@ static void test_FoldStringW(void)
     0x0030, /* '0'-'9' */
     0x0660, /* Eastern Arabic */
     0x06F0, /* Arabic - Hindu */
+    0x07C0, /* Nko */
     0x0966, /* Devengari */
     0x09E6, /* Bengalii */
     0x0A66, /* Gurmukhi */
@@ -2331,16 +2332,37 @@ static void test_FoldStringW(void)
     0x0D66, /* Maylayalam */
     0x0E50, /* Thai */
     0x0ED0, /* Laos */
-    0x0F29, /* Tibet - 0 is out of sequence */
+    0x0F20, /* Tibet */
+    0x0F29, /* Tibet half - 0 is out of sequence */
+    0x1040, /* Myanmar */
+    0x1090, /* Myanmar Shan */
+    0x1368, /* Ethiopic - no 0 */
+    0x17E0, /* Khmer */
+    0x1810, /* Mongolian */
+    0x1946, /* Limbu */
+    0x19D0, /* New Tai Lue */
+    0x1A80, /* Tai Tham Hora */
+    0x1A90, /* Tai Tham Tham */
+    0x1B50, /* Balinese */
+    0x1BB0, /* Sundanese */
+    0x1C40, /* Lepcha */
+    0x1C50, /* Ol Chiki */
     0x2070, /* Superscript - 1, 2, 3 are out of sequence */
     0x2080, /* Subscript */
     0x245F, /* Circled - 0 is out of sequence */
     0x2473, /* Bracketed */
     0x2487, /* Full stop */
+    0x24F4, /* Double Circled */
     0x2775, /* Inverted circled - No 0 */
     0x277F, /* Patterned circled - No 0 */
     0x2789, /* Inverted Patterned circled - No 0 */
     0x3020, /* Hangzhou */
+    0xA620, /* Vai */
+    0xA8D0, /* Saurashtra */
+    0xA900, /* Kayah Li */
+    0xA9D0, /* Javanese */
+    0xAA50, /* Cham */
+    0xABF0, /* Meetei Mayek */
     0xff10, /* Pliene chasse (?) */
     0xffff  /* Terminator */
   };
@@ -2350,8 +2372,17 @@ static void test_FoldStringW(void)
       0xB9,   /* Superscript 1 */
       0xB2,   /* Superscript 2 */
       0xB3,   /* Superscript 3 */
+      0x0C78, /* Telugu Fraction 0 */
+      0x0C79, /* Telugu Fraction 1 */
+      0x0C7A, /* Telugu Fraction 2 */
+      0x0C7B, /* Telugu Fraction 3 */
+      0x0C7C, /* Telugu Fraction 1 */
+      0x0C7D, /* Telugu Fraction 2 */
+      0x0C7E, /* Telugu Fraction 3 */
       0x0F33, /* Tibetan half zero */
+      0x19DA, /* New Tai Lue Tham 1 */
       0x24EA, /* Circled 0 */
+      0x24FF, /* Negative Circled 0 */
       0x3007, /* Ideographic number zero */
       '\0'    /* Terminator */
   };
@@ -2360,8 +2391,10 @@ static void test_FoldStringW(void)
   {
       0x0BE6, /* No Tamil 0 */
       0x0F29, /* No Tibetan half zero (out of sequence) */
+      0x1368, /* No Ethiopic 0 */
       0x2473, /* No Bracketed 0 */
       0x2487, /* No 0 Full stop */
+      0x24F4, /* No double circled 0 */
       0x2775, /* No inverted circled 0 */
       0x277F, /* No patterned circled */
       0x2789, /* No inverted Patterned circled */
@@ -2489,10 +2522,11 @@ static void test_FoldStringW(void)
       ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
 
       ok(dst[0] == ch || strchrW(outOfSequenceDigits, ch) ||
-         /* Wine (correctly) maps all Unicode 4.0+ digits */
-         isdigitW(ch) || (ch >= 0x24F5 && ch <= 0x24FD) || ch == 0x24FF || ch == 0x19da ||
-         (ch >= 0x1369 && ch <= 0x1371),
-         "MAP_FOLDDIGITS: ch %d 0x%04x Expected unchanged got %d\n", ch, ch, dst[0]);
+         (ch >= 0xa8e0 && ch <= 0xa8e9),  /* combining Devanagari on Win8 */
+         "MAP_FOLDDIGITS: ch 0x%04x Expected unchanged got %04x\n", ch, dst[0]);
+      ok(!isdigitW(ch) || strchrW(outOfSequenceDigits, ch) ||
+         broken( ch >= 0xbf0 && ch <= 0xbf2 ), /* win2k */
+         "char %04x should not be a digit\n", ch );
     }
 
     if (digitRanges[j] == 0xffff)
@@ -2519,7 +2553,7 @@ static void test_FoldStringW(void)
          (digitRanges[j] == 0x3020 && dst[0] == ch) || /* Hangzhou not present in all Windows versions */
          (digitRanges[j] == 0x0F29 && dst[0] == ch) || /* Tibetan not present in all Windows versions */
          strchrW(noDigitAvailable, c),
-         "MAP_FOLDDIGITS: ch %d Expected %d got %d\n",
+         "MAP_FOLDDIGITS: ch %04x Expected %04x got %04x\n",
          ch, '0' + digitRanges[j] - ch, dst[0]);
     }
     prev_ch = ch;




More information about the wine-cvs mailing list