From d6cc900c4228c1a2fb1562382c68d01dabe4eb14 Mon Sep 17 00:00:00 2001 From: Norbert Runge Date: Tue, 3 Oct 2017 16:08:43 +0000 Subject: [PATCH] ICU-12986 parameterizes long running unit test to split it into shorter unit test runs. X-SVN-Rev: 40534 --- .../TransliteratorInstantiateAllTest.java | 66 +++++++++++++++++++ .../dev/test/translit/TransliteratorTest.java | 52 +-------------- 2 files changed, 68 insertions(+), 50 deletions(-) create mode 100644 icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorInstantiateAllTest.java diff --git a/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorInstantiateAllTest.java b/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorInstantiateAllTest.java new file mode 100644 index 00000000000..3cb566eb14f --- /dev/null +++ b/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorInstantiateAllTest.java @@ -0,0 +1,66 @@ +// © 2017 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html#License +package com.ibm.icu.dev.test.translit; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import com.ibm.icu.dev.test.TestFmwk; +import com.ibm.icu.text.Transliterator; + +/*********************************************************************** + +This test class uses JUnit parametrization to iterate over all +transliterators and to execute a sample operation. + +***********************************************************************/ + +@RunWith(Parameterized.class) +public class TransliteratorInstantiateAllTest extends TestFmwk { + private String testTransliteratorID; + + public TransliteratorInstantiateAllTest /*InstantiationTest*/(String t) { + this.testTransliteratorID = t; + } + + @Parameterized.Parameters + public static Collection testData() { + ArrayList allTranslitIDs = new ArrayList(); + + for (Enumeration e = Transliterator.getAvailableIDs(); e.hasMoreElements(); ) { + allTranslitIDs.add((String) e.nextElement()); + } + + return allTranslitIDs; + } + + @Test + public void TestInstantiation() { + Transliterator t = null; + + try { + t = Transliterator.getInstance(testTransliteratorID); + } catch (IllegalArgumentException ex) { + errln("FAIL: " + testTransliteratorID); + throw ex; + } + + if (t != null) { + // Test toRules + String rules = null; + try { + rules = t.toRules(true); + Transliterator.createFromRules("x", rules, Transliterator.FORWARD); + } catch (IllegalArgumentException ex2) { + errln("FAIL: " + "ID" + ".toRules() => bad rules: " + + rules); + throw ex2; + } + } + } +} diff --git a/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorTest.java b/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorTest.java index 090f280f52c..b71629448ba 100644 --- a/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorTest.java +++ b/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorTest.java @@ -170,62 +170,14 @@ public class TransliteratorTest extends TestFmwk { } @Test - public void TestInstantiation() { - long ms = System.currentTimeMillis(); - String ID; - for (Enumeration e = Transliterator.getAvailableIDs(); e.hasMoreElements(); ) { - ID = (String) e.nextElement(); - if (ID.equals("Latin-Han/definition")) { - System.out.println("\nTODO: disabling Latin-Han/definition check for now: fix later"); - continue; - } - Transliterator t = null; - try { - t = Transliterator.getInstance(ID); - // This is only true for some subclasses - // // We should get a new instance if we try again - // Transliterator t2 = Transliterator.getInstance(ID); - // if (t != t2) { - // logln("OK: " + Transliterator.getDisplayName(ID) + " (" + ID + "): " + t); - // } else { - // errln("FAIL: " + ID + " returned identical instances"); - // t = null; - // } - } catch (IllegalArgumentException ex) { - errln("FAIL: " + ID); - throw ex; - } - - // if (t.getFilter() != null) { - // errln("Fail: Should never have filter on transliterator unless we started with one: " + ID + ", " + t.getFilter()); - // } - - if (t != null) { - // Now test toRules - String rules = null; - try { - rules = t.toRules(true); - - Transliterator.createFromRules("x", rules, Transliterator.FORWARD); - } catch (IllegalArgumentException ex2) { - errln("FAIL: " + ID + ".toRules() => bad rules: " + - rules); - throw ex2; - } - } - } - - // Now test the failure path + public void TestInstantiationError() { try { - ID = ""; + String ID = ""; Transliterator t = Transliterator.getInstance(ID); errln("FAIL: " + ID + " returned " + t); } catch (IllegalArgumentException ex) { logln("OK: Bogus ID handled properly"); } - - ms = System.currentTimeMillis() - ms; - logln("Elapsed time: " + ms + " ms"); } @Test -- 2.40.0