"numberformattestspecification.txt", ICU58);
}
+ // Note: This test case is really questionable. Depending on Java version,
+ // something may or may not work. However the test data assumes a specific
+ // Java runtime version. We should probably disable this test case - #13372
@Test
public void TestDataDrivenJDK() {
// Android implements java.text.DecimalFormat with ICU4J (ticket #13322).
if (TestUtil.getJavaVendor() == TestUtil.JavaVendor.Android) return;
- DataDrivenNumberFormatTestUtility.runFormatSuiteIncludingKnownFailures(
- "numberformattestspecification.txt", JDK);
+ if (TestUtil.getJavaVersion() == 8) {
+ DataDrivenNumberFormatTestUtility.runFormatSuiteIncludingKnownFailures(
+ "numberformattestspecification.txt", JDK);
+ } else {
+ // Oracle/OpenJDK 9's behavior is not exactly same with Oracle/OpenJDK 8.
+ // Some test cases failed on 8 work well, while some other test cases
+ // fail on 9, but worked on 8. Skip this test case if Java version is not 8.
+ return;
+ }
}
@Test
lock.inc();
}
+ @Override
public void run() {
try {
synchronized (lock) {
int ver = -1;
String verstr = System.getProperty("java.version");
if (verstr != null) {
- String[] numbers = verstr.split("\\.");
- try {
- ver = Integer.parseInt(numbers[1]);
- } catch (NumberFormatException e) {
- ver = -1;
+ String majorVerStr = null;
+ if (verstr.startsWith("1.")) {
+ String[] numbers = verstr.split("\\.");
+ if (numbers.length > 1) {
+ majorVerStr = numbers[1];
+ }
+ } else {
+ String[] numbers = verstr.split("\\.|-");
+ if (numbers.length > 0) {
+ majorVerStr = numbers[0];
+ }
+ }
+ if (majorVerStr != null) {
+ try {
+ ver = Integer.parseInt(majorVerStr);
+ } catch (NumberFormatException e) {
+ ver = -1;
+ }
}
}
return ver;