ICU-2675 check no data

X-SVN-Rev: 17928
This commit is contained in:
Doug Felt 2005-06-16 23:03:01 +00:00
parent 31689d0653
commit f91e3e87f0
9 changed files with 86 additions and 48 deletions

View file

@ -76,7 +76,7 @@ public class CollationAPITest extends TestFmwk {
errln("Non-CollationKey comparison");
}
catch (Exception e) {
logln("PASS: Non-CollationKey comparison failed as expected");
logln("PASS: Non-CollationKey comparison failed as expected");
}
if (sortk1.equals(fake)) {
errln("Non-CollationKey comparison");
@ -186,14 +186,14 @@ public class CollationAPITest extends TestFmwk {
errln("Constructor taking an array and a size > array.length "
+ "expected to throw an exception");
} catch (IndexOutOfBoundsException e) {
logln("PASS: Constructor failed as expected");
logln("PASS: Constructor failed as expected");
}
try {
key = new RawCollationKey(array, -1);
errln("Constructor taking an array and a size < 0 "
+ "expected to throw an exception");
} catch (IndexOutOfBoundsException e) {
logln("PASS: Constructor failed as expected");
logln("PASS: Constructor failed as expected");
}
key = new RawCollationKey(array, array.length >> 1);
if (key.bytes != array || key.size != (array.length >> 1)) {
@ -254,7 +254,7 @@ public class CollationAPITest extends TestFmwk {
col.compare(die, test1);
errln("Non-Strings should fail col.compare(Object, Object)");
} catch (Exception e) {
logln("PASS: Non-Strings comparison failed as expected");
logln("PASS: Non-Strings comparison failed as expected");
}
}
@ -572,7 +572,8 @@ public class CollationAPITest extends TestFmwk {
try {
col1 = new RuleBasedCollator(ruleset1);
} catch (Exception e) {
errln("RuleBased Collator creation failed.");
// only first error needs to be a warning since we exit function
warnln("RuleBased Collator creation failed.");
return;
}
@ -588,8 +589,10 @@ public class CollationAPITest extends TestFmwk {
col3 = new RuleBasedCollator(ruleset3);
errln("Failure: Empty rules for the collator should fail");
return;
} catch (MissingResourceException e) {
warnln(e.getMessage());
} catch (Exception e) {
logln("PASS: Empty rules for the collator failed as expected");
logln("PASS: Empty rules for the collator failed as expected");
}
Locale locale = new Locale("aa", "AA");
@ -737,7 +740,7 @@ public class CollationAPITest extends TestFmwk {
}
}
} catch (Exception e) {
errln("Couldn't open collator with rules "+ rules[i]);
warnln("Couldn't open collator with rules "+ rules[i]);
}
}
}

View file

@ -38,7 +38,7 @@ public class CollationIteratorTest extends TestFmwk {
try {
c = new RuleBasedCollator("&a < b < c & ab = d");
} catch (Exception e) {
errln("Couldn't create a RuleBasedCollator.");
warnln("Couldn't create a RuleBasedCollator.");
return;
}
@ -95,7 +95,7 @@ public class CollationIteratorTest extends TestFmwk {
try {
coll = new RuleBasedCollator(rule);
} catch (Exception e) {
errln("Fail to create RuleBasedCollator");
warnln("Fail to create RuleBasedCollator");
return;
}
char ch = 0;
@ -609,7 +609,7 @@ public class CollationIteratorTest extends TestFmwk {
}
}
catch (Exception e) {
errln("Error running discontiguous tests " + e.toString());
warnln("Error running discontiguous tests " + e.toString());
}
}
@ -631,7 +631,7 @@ public class CollationIteratorTest extends TestFmwk {
coll = new RuleBasedCollator(rules);
coll.setDecomposition(Collator.CANONICAL_DECOMPOSITION);
} catch (Exception e) {
errln("ERROR: in creation of collator using rules " + rules);
warnln("ERROR: in creation of collator using rules " + rules);
return;
}
@ -641,4 +641,4 @@ public class CollationIteratorTest extends TestFmwk {
CollationTest.backAndForth(this, iter);
}
}
}
}

View file

@ -182,7 +182,7 @@ public class CollationMiscTest extends TestFmwk {
// logln("Rules starter for " + rules);
genericOrderingTestWithResult(coll, s, result);
} catch (Exception e) {
errln("Unable to open collator with rules " + rules);
warnln("Unable to open collator with rules " + rules);
}
}
@ -317,7 +317,7 @@ public class CollationMiscTest extends TestFmwk {
RuleBasedCollator coll = new RuleBasedCollator(string);
logln("rule:" + coll.getRules());
} catch (Exception e) {
errln("Error open RuleBasedCollator rule = " + string);
warnln("Error open RuleBasedCollator rule = " + string);
}
}
@ -685,7 +685,7 @@ public class CollationMiscTest extends TestFmwk {
try {
myCollation = new RuleBasedCollator(gRules);
} catch (Exception e) {
errln("ERROR: in creation of rule based collator");
warnln("ERROR: in creation of rule based collator");
return;
}
// logln("Testing different case settings with custom rules");
@ -785,7 +785,7 @@ public class CollationMiscTest extends TestFmwk {
try {
coll = new RuleBasedCollator(temp);
} catch (Exception e) {
errln("fail to create RuleBasedCollator");
warnln("fail to create RuleBasedCollator");
return;
}
@ -802,7 +802,7 @@ public class CollationMiscTest extends TestFmwk {
try {
coll = new RuleBasedCollator(temp);
} catch (Exception e) {
errln("fail to create RuleBasedCollator");
warnln("fail to create RuleBasedCollator");
return;
}
@ -1010,7 +1010,7 @@ public class CollationMiscTest extends TestFmwk {
RuleBasedCollator coll = new RuleBasedCollator(rulez);
logln("rule:" + coll.getRules());
} catch (Exception e) {
warnln(e.getMessage());
}
}
@ -1062,7 +1062,8 @@ public class CollationMiscTest extends TestFmwk {
try {
rbc = new RuleBasedCollator(rule[i]);
} catch (Exception e) {
System.out.println(e.getMessage());
warnln(e.getMessage());
return;
}
iter1 = rbc.getCollationElementIterator("CH");
iter2 = rbc.getCollationElementIterator("\u0427");
@ -1175,7 +1176,7 @@ public class CollationMiscTest extends TestFmwk {
logln(" credundant Rule:" + ((RuleBasedCollator)credundant).getRules());
logln(" cresulting Rule:" + ((RuleBasedCollator)cresulting).getRules());
} catch (Exception e) {
errln("Cannot create RuleBasedCollator");
warnln("Cannot create RuleBasedCollator");
}
//testAgainstUCA(cresulting, credundant, "expected", TRUE, &status);
// logln("testing using data\n");
@ -1212,7 +1213,7 @@ public class CollationMiscTest extends TestFmwk {
logln(" credundant Rule:" + ((RuleBasedCollator)credundant).getRules());
logln(" cresulting Rule:" + ((RuleBasedCollator)cresulting).getRules());
} catch (Exception e) {
warnln(e.getMessage());
}
// testAgainstUCA still doesn't handle expansions correctly, so this is not run
// as a hard error test, but only in information mode
@ -1247,7 +1248,7 @@ public class CollationMiscTest extends TestFmwk {
try {
coll = new RuleBasedCollator(rlz);
} catch (Exception e) {
errln("Unable to open collator with rules" + rules);
warnln("Unable to open collator with rules" + rules);
return;
}
// logln("Using start of korean rules\n");
@ -1447,7 +1448,7 @@ public class CollationMiscTest extends TestFmwk {
try {
coll = new RuleBasedCollator(rule);
} catch (Exception e) {
errln("Collator creation failed " + testrules[i]);
warnln("Collator creation failed " + testrules[i]);
return;
}
try {
@ -1555,7 +1556,7 @@ public class CollationMiscTest extends TestFmwk {
try {
coll = new RuleBasedCollator(rule);
} catch (Exception e) {
errln("Collator creation failed " + testrules[i]);
warnln("Collator creation failed " + testrules[i]);
return;
}
@ -1575,7 +1576,7 @@ public class CollationMiscTest extends TestFmwk {
try {
coll = new RuleBasedCollator(rules);
} catch (Exception e) {
errln("Collator creation failed " + rules);
warnln("Collator creation failed " + rules);
return;
}
CollationTest.doTest(this, (RuleBasedCollator)coll, src, tgt, 1);
@ -1625,7 +1626,7 @@ public class CollationMiscTest extends TestFmwk {
}
prevrule = rule;
} catch (Exception e) {
errln("Error retrieving resource bundle for testing: " + e.toString());
warnln("Error retrieving resource bundle for testing: " + e.toString());
}
}
}
@ -1659,7 +1660,7 @@ public class CollationMiscTest extends TestFmwk {
coll.setStrength(Collator.IDENTICAL);
CollationTest.doTest(this, coll, strA, strB, 1);
} catch (Exception e) {
errln(e.getMessage());
warnln(e.getMessage());
}
}
@ -1767,16 +1768,16 @@ public class CollationMiscTest extends TestFmwk {
coll.setVariableTop("");
errln("Empty string should throw an IllegalArgumentException");
} catch (IllegalArgumentException e) {
logln("PASS: Empty string failed as expected");
logln("PASS: Empty string failed as expected");
}
try {
coll.setVariableTop(null);
errln("Null string should throw an IllegalArgumentException");
} catch (IllegalArgumentException e) {
logln("PASS: null string failed as expected");
logln("PASS: null string failed as expected");
}
} catch (Exception e) {
errln("Error creating RuleBasedCollator");
warnln("Error creating RuleBasedCollator");
}
}
@ -1897,7 +1898,7 @@ public class CollationMiscTest extends TestFmwk {
logln("Collator did not throw an exception");
}
} catch (Exception e) {
errln("Error creating RuleBasedCollator with " + rule + " failed");
warnln("Error creating RuleBasedCollator with " + rule + " failed");
}
}
@ -1919,10 +1920,14 @@ public class CollationMiscTest extends TestFmwk {
public void TestJ3347()
{
Collator coll = Collator.getInstance(Locale.FRENCH);
((RuleBasedCollator)coll).setAlternateHandlingShifted(true);
if (coll.compare("6", "!6") != 0) {
errln("Jitterbug 3347 failed");
try {
Collator coll = Collator.getInstance(Locale.FRENCH);
((RuleBasedCollator)coll).setAlternateHandlingShifted(true);
if (coll.compare("6", "!6") != 0) {
errln("Jitterbug 3347 failed");
}
} catch (Exception e) {
warnln("Error creating UCA collator");
}
}
@ -2035,6 +2040,7 @@ public class CollationMiscTest extends TestFmwk {
show(MAX_INPUT, foo);
} catch (Exception e) {
e.printStackTrace();
warnln(e.getMessage());
} finally {
logln("End");
}

View file

@ -13,6 +13,8 @@ import com.ibm.icu.dev.test.TestFmwk;
import com.ibm.icu.text.ArabicShaping;
import com.ibm.icu.text.ArabicShapingException;
import java.util.MissingResourceException;
/**
* Regression test for Arabic shaping.
*/
@ -435,6 +437,9 @@ public class ArabicShapingRegTest extends TestFmwk {
}
public void reportTestFailure(int index, TestData test, ArabicShaping shaper, String result, Exception error) {
if (noData() && error != null && error instanceof MissingResourceException ) {
warnln(error.getMessage());
}
StringBuffer buf = new StringBuffer();
buf.append("*** test failure ***\n");
@ -466,9 +471,10 @@ public class ArabicShapingRegTest extends TestFmwk {
}
private static String escapedString(String str) {
if(str==null){
return str;
if (str == null) {
return null;
}
StringBuffer buf = new StringBuffer(str.length() * 6);
for (int i = 0; i < str.length(); ++i) {
char ch = str.charAt(i);

View file

@ -1,6 +1,6 @@
/**
*******************************************************************************
* Copyright (C) 2001-2004, International Business Machines Corporation and *
* Copyright (C) 2001-2005, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@ -26,6 +26,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.MissingResourceException;
import java.util.Random;
import java.util.Set;
import java.util.SortedMap;
@ -81,7 +82,14 @@ public class ICUServiceThreadTest extends TestFmwk
* sort the display names, and null for the matchID.
*/
public static SortedMap getDisplayNames(ICUService service, ULocale locale) {
Collator col = Collator.getInstance(locale);
Collator col;
try {
col = Collator.getInstance(locale);
}
catch (MissingResourceException e) {
// if no collator resources, we can't collate
col = null;
}
return service.getDisplayNames(locale, col, null);
}
private static final Random r = new Random(); // this is a multi thread test, can't 'unrandomize'

View file

@ -571,11 +571,11 @@ public final class ArabicShaping {
char digitBase,
boolean lastStrongWasAL) {
UBiDiProps bdp;
try {
bdp=UBiDiProps.getSingleton();
} catch (IOException e) {
throw new MissingResourceException(e.getMessage(),"","");
}
try {
bdp=UBiDiProps.getSingleton();
} catch (IOException e) {
throw new MissingResourceException(e.getMessage(), "(BidiProps)", "");
}
digitBase -= '0'; // move common adjustment out of loop
for(int i = start + length; --i >= start;) {

View file

@ -119,6 +119,9 @@ final class BreakIteratorFactory extends BreakIterator.BreakIteratorServiceShim
BreakIterator iter = null;
ResourceBundle bundle = ICULocaleData.getResourceBundle("BreakIteratorRules", where);
if (bundle == null) {
throw new MissingResourceException("No ICU Data", "BreakIteratorRules", where.toString());
}
String[] classNames = bundle.getStringArray("BreakIteratorClasses");
String rules = bundle.getString(rulesName);
if (classNames[kind].equals("RuleBasedBreakIterator")) {
@ -180,5 +183,4 @@ final class BreakIteratorFactory extends BreakIterator.BreakIteratorServiceShim
iter.setLocale(uloc, uloc);
return iter;
}
}

View file

@ -1,6 +1,6 @@
/**
*******************************************************************************
* Copyright (C) 2003-2004, International Business Machines Corporation and *
* Copyright (C) 2003-2005, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@ -8,6 +8,7 @@
package com.ibm.icu.text;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.Set;
import com.ibm.icu.impl.ICULocaleService;
@ -31,6 +32,9 @@ final class CollatorServiceShim extends Collator.ServiceShim {
try {
ULocale[] actualLoc = new ULocale[1];
Collator coll = (Collator)service.get(locale, actualLoc);
if (coll == null) {
throw new MissingResourceException("Could not locate Collator data", "", "");
}
coll = (Collator) coll.clone();
coll.setLocale(actualLoc[0], actualLoc[0]); // services make no distinction between actual & valid
return coll;
@ -119,7 +123,12 @@ final class CollatorServiceShim extends Collator.ServiceShim {
if (actualIDReturn != null) {
actualIDReturn[0] = "root";
}
return new RuleBasedCollator(ULocale.ROOT);
try {
return new RuleBasedCollator(ULocale.ROOT);
}
catch (MissingResourceException e) {
return null;
}
}
}
private static ICULocaleService service = new CService();

View file

@ -1,6 +1,6 @@
/*
*******************************************************************************
* Copyright (C) 2003-2004, International Business Machines Corporation and *
* Copyright (C) 2003-2005, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@ -9,6 +9,7 @@ package com.ibm.icu.text;
import java.util.Locale;
import java.util.Set;
import java.util.MissingResourceException;
//import com.ibm.icu.impl.ICULocaleData;
import com.ibm.icu.impl.ICUResourceBundle;
@ -86,6 +87,9 @@ class NumberFormatServiceShim extends NumberFormat.NumberFormatShim {
ULocale[] actualLoc = new ULocale[1];
NumberFormat fmt = (NumberFormat)service.get(desiredLocale, choice,
actualLoc);
if (fmt == null) {
throw new MissingResourceException("Unable to construct NumberFormat", "", "");
}
fmt = (NumberFormat)fmt.clone();
ULocale uloc = actualLoc[0];