Index: source/test/intltest/itspoof.cpp |
diff --git a/source/test/intltest/itspoof.cpp b/source/test/intltest/itspoof.cpp |
index b5b90e27e4e31cea47b4bc0d038e9e608afab6f0..42869a738ceafe5038c54541c5c3187979802446 100644 |
--- a/source/test/intltest/itspoof.cpp |
+++ b/source/test/intltest/itspoof.cpp |
@@ -1,6 +1,6 @@ |
/* |
********************************************************************** |
-* Copyright (C) 2011-2014, International Business Machines Corporation |
+* Copyright (C) 2011-2015, International Business Machines Corporation |
* and others. All Rights Reserved. |
********************************************************************** |
*/ |
@@ -177,6 +177,9 @@ void IntlTestSpoof::testSpoofAPI() { |
// Unicode data file confusables.txt |
// Test cases chosen for substitutions of various lengths, and |
// membership in different mapping tables. |
+// Note: for ICU 55, all tables collapsed to the MA table data. |
+// TODO: for ICU 56 with Unicode 8, revisit this test. |
+// |
void IntlTestSpoof::testSkeleton() { |
const uint32_t ML = 0; |
const uint32_t SL = USPOOF_SINGLE_SCRIPT_CONFUSABLE; |
@@ -184,49 +187,42 @@ void IntlTestSpoof::testSkeleton() { |
const uint32_t SA = USPOOF_SINGLE_SCRIPT_CONFUSABLE | USPOOF_ANY_CASE; |
TEST_SETUP |
- // A long "identifier" that will overflow implementation stack buffers, forcing heap allocations. |
- CHECK_SKELETON(SL, " A 1ong \\u02b9identifier' that will overflow implementation stack buffers, forcing heap allocations." |
- " A 1ong 'identifier' that will overflow implementation stack buffers, forcing heap allocations." |
- " A 1ong 'identifier' that will overflow implementation stack buffers, forcing heap allocations." |
- " A 1ong 'identifier' that will overflow implementation stack buffers, forcing heap allocations.", |
- |
- " A long 'identifier' that vvill overflovv irnplernentation stack buffers, forcing heap allocations." |
- " A long 'identifier' that vvill overflovv irnplernentation stack buffers, forcing heap allocations." |
- " A long 'identifier' that vvill overflovv irnplernentation stack buffers, forcing heap allocations." |
- " A long 'identifier' that vvill overflovv irnplernentation stack buffers, forcing heap allocations.") |
- |
CHECK_SKELETON(SL, "nochange", "nochange"); |
+ CHECK_SKELETON(SA, "nochange", "nochange"); |
+ CHECK_SKELETON(ML, "nochange", "nochange"); |
+ CHECK_SKELETON(MA, "nochange", "nochange"); |
CHECK_SKELETON(MA, "love", "love"); |
CHECK_SKELETON(MA, "1ove", "love"); // Digit 1 to letter l |
CHECK_SKELETON(ML, "OOPS", "OOPS"); |
- CHECK_SKELETON(ML, "00PS", "00PS"); // Digit 0 unchanged in lower case mode. |
+ CHECK_SKELETON(ML, "00PS", "OOPS"); |
CHECK_SKELETON(MA, "OOPS", "OOPS"); |
CHECK_SKELETON(MA, "00PS", "OOPS"); // Digit 0 to letter O in any case mode only |
CHECK_SKELETON(SL, "\\u059c", "\\u0301"); |
CHECK_SKELETON(SL, "\\u2A74", "\\u003A\\u003A\\u003D"); |
CHECK_SKELETON(SL, "\\u247E", "\\u0028\\u006C\\u006C\\u0029"); // "(ll)" |
- CHECK_SKELETON(SL, "\\uFDFB", "\\u062C\\u0644\\u0020\\u062C\\u0644\\u0627\\u0644\\u0647"); |
+ CHECK_SKELETON(SL, "\\uFDFB", "\\u062C\\u0644\\u0020\\u062C\\u0644\\u006c\\u0644\\u006f"); |
// This mapping exists in the ML and MA tables, does not exist in SL, SA |
- //0C83 ; 0C03 ; |
- CHECK_SKELETON(SL, "\\u0C83", "\\u0C83"); |
- CHECK_SKELETON(SA, "\\u0C83", "\\u0C83"); |
+ // 0C83 ; 0983 ; ML |
+ // 0C83 ; 0983 ; MA |
+ // |
+ |
+ CHECK_SKELETON(SL, "\\u0C83", "\\u0983"); |
+ CHECK_SKELETON(SA, "\\u0C83", "\\u0983"); |
CHECK_SKELETON(ML, "\\u0C83", "\\u0983"); |
CHECK_SKELETON(MA, "\\u0C83", "\\u0983"); |
- // 0391 ; 0041 ; |
- // This mapping exists only in the MA table. |
+ // 0391 mappings exist only in MA and SA tables. |
CHECK_SKELETON(MA, "\\u0391", "A"); |
- CHECK_SKELETON(SA, "\\u0391", "\\u0391"); |
- CHECK_SKELETON(ML, "\\u0391", "\\u0391"); |
- CHECK_SKELETON(SL, "\\u0391", "\\u0391"); |
+ CHECK_SKELETON(SA, "\\u0391", "A"); |
+ CHECK_SKELETON(ML, "\\u0391", "A"); |
+ CHECK_SKELETON(SL, "\\u0391", "A"); |
- // 13CF ; 0062 ; |
- // This mapping exists in the ML and MA tables |
+ // 13CF Mappings in all four tables, different in MA. |
CHECK_SKELETON(ML, "\\u13CF", "b"); |
CHECK_SKELETON(MA, "\\u13CF", "b"); |
- CHECK_SKELETON(SL, "\\u13CF", "\\u13CF"); |
- CHECK_SKELETON(SA, "\\u13CF", "\\u13CF"); |
+ CHECK_SKELETON(SL, "\\u13CF", "b"); |
+ CHECK_SKELETON(SA, "\\u13CF", "b"); |
// 0022 ; 0027 0027 ; |
// all tables. |
@@ -235,10 +231,11 @@ void IntlTestSpoof::testSkeleton() { |
CHECK_SKELETON(ML, "\\u0022", "\\u0027\\u0027"); |
CHECK_SKELETON(MA, "\\u0022", "\\u0027\\u0027"); |
- // 017F ; 0066 ; |
- // This mapping exists in the SA and MA tables |
+ // 017F mappings exist only in MA and SA tables. |
CHECK_SKELETON(MA, "\\u017F", "f"); |
CHECK_SKELETON(SA, "\\u017F", "f"); |
+ CHECK_SKELETON(ML, "\\u017F", "f"); |
+ CHECK_SKELETON(SL, "\\u017F", "f"); |
TEST_TEARDOWN; |
} |