| 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;
|
| }
|
|
|