8284856: Add a test case for checking UnicodeScript entity numbers

Reviewed-by: iris, smarks
This commit is contained in:
Naoto Sato 2022-04-19 15:51:57 +00:00
parent a5bb210589
commit eb9c457b41
2 changed files with 13 additions and 5 deletions

View file

@ -5285,7 +5285,7 @@ class Character implements java.io.Serializable, Comparable<Character>, Constabl
/**
* Unicode script "Unknown".
*/
UNKNOWN;
UNKNOWN; // must be the last enum constant for calculating the size of "aliases" hash map.
private static final int[] scriptStarts = {
0x0000, // 0000..0040; COMMON
@ -8571,7 +8571,7 @@ class Character implements java.io.Serializable, Comparable<Character>, Constabl
private static final HashMap<String, Character.UnicodeScript> aliases;
static {
aliases = HashMap.newHashMap(162);
aliases = HashMap.newHashMap(UNKNOWN.ordinal() + 1);
aliases.put("ADLM", ADLAM);
aliases.put("AGHB", CAUCASIAN_ALBANIAN);
aliases.put("AHOM", AHOM);

View file

@ -23,9 +23,10 @@
/**
* @test
* @bug 8080535 8191410 8215194 8221431 8239383 8268081 8283465
* @bug 8080535 8191410 8215194 8221431 8239383 8268081 8283465 8284856
* @summary Check if the NUM_ENTITIES field reflects the correct number
* of Character.UnicodeBlock constants.
* of Character.UnicodeBlock constants. Also checks the size of
* Character.UnicodeScript's "aliases" map.
* @modules java.base/java.lang:open
* @run testng NumberEntities
*/
@ -38,7 +39,7 @@ import java.util.Map;
@Test
public class NumberEntities {
public void test_NumberEntities() throws Throwable {
public void test_UnicodeBlock_NumberEntities() throws Throwable {
// The number of entries in Character.UnicodeBlock.map.
// See src/java.base/share/classes/java/lang/Character.java
Field n = Character.UnicodeBlock.class.getDeclaredField("NUM_ENTITIES");
@ -47,4 +48,11 @@ public class NumberEntities {
m.setAccessible(true);
assertEquals(((Map)m.get(null)).size(), n.getInt(null));
}
public void test_UnicodeScript_aliases() throws Throwable {
// The number of entries in Character.UnicodeScript.aliases.
// See src/java.base/share/classes/java/lang/Character.java
Field aliases = Character.UnicodeScript.class.getDeclaredField("aliases");
aliases.setAccessible(true);
assertEquals(((Map)aliases.get(null)).size(), Character.UnicodeScript.UNKNOWN.ordinal() + 1);
}
}