]> granicus.if.org Git - icu/commitdiff
ICU-10889 test UCharacter.getCharFromExtendedName() edge cases
authorMarkus Scherer <markus.icu@gmail.com>
Fri, 29 Aug 2014 21:31:47 +0000 (21:31 +0000)
committerMarkus Scherer <markus.icu@gmail.com>
Fri, 29 Aug 2014 21:31:47 +0000 (21:31 +0000)
X-SVN-Rev: 36294

icu4j/main/tests/core/src/com/ibm/icu/dev/test/lang/UCharacterTest.java

index 18169b95175da45c103b4ea194d2d9cb8970b6d6..b7b3d6ae508858d0b2c230759ace49220428e847 100644 (file)
@@ -1214,6 +1214,33 @@ public final class UCharacterTest extends TestFmwk
 
     }
 
+    public void TestUCharFromNameUnderflow() {
+        // Ticket #10889: Underflow crash when there is no dash.
+        int c = UCharacter.getCharFromExtendedName("<NO BREAK SPACE>");
+        if(c >= 0) {
+            errln("UCharacter.getCharFromExtendedName(<NO BREAK SPACE>) = U+" + hex(c) +
+                    " but should fail (-1)");
+        }
+
+        // Test related edge cases.
+        c = UCharacter.getCharFromExtendedName("<-00a0>");
+        if(c >= 0) {
+            errln("UCharacter.getCharFromExtendedName(<-00a0>) = U+" + hex(c) +
+                    " but should fail (-1)");
+        }
+
+        c = UCharacter.getCharFromExtendedName("<control->");
+        if(c >= 0) {
+            errln("UCharacter.getCharFromExtendedName(<control->) = U+" + hex(c) +
+                    " but should fail (-1)");
+        }
+
+        c = UCharacter.getCharFromExtendedName("<control-111111>");
+        if(c >= 0) {
+            errln("UCharacter.getCharFromExtendedName(<control-111111>) = U+" + hex(c) +
+                    " but should fail (-1)");
+        }
+    }
 
     /**
     * Testing name iteration