--- a/test/jdk/java/util/Locale/LocaleProviders.java Tue Nov 12 13:49:40 2019 -0800
+++ b/test/jdk/java/util/Locale/LocaleProviders.java Tue Nov 12 14:05:18 2019 -0800
@@ -24,6 +24,7 @@
import java.text.spi.*;
import java.util.*;
import java.util.spi.*;
+import java.util.stream.IntStream;
import sun.util.locale.provider.LocaleProviderAdapter;
public class LocaleProviders {
@@ -87,6 +88,10 @@
bug8232871Test();
break;
+ case "bug8232860Test":
+ bug8232860Test();
+ break;
+
default:
throw new RuntimeException("Test method '"+methodName+"' not found.");
}
@@ -327,4 +332,42 @@
"native calendar is not JapaneseCalendar: " + calType);
}
}
+
+ static void bug8232860Test() {
+ var inputList = List.of(123, 123.4);
+ var nfExpectedList = List.of("123", "123.4");
+ var ifExpectedList = List.of("123", "123");
+
+ var type = LocaleProviderAdapter.getAdapter(CalendarNameProvider.class, Locale.US)
+ .getAdapterType();
+ if (type == LocaleProviderAdapter.Type.HOST && (IS_WINDOWS || IS_MAC)) {
+ final var numf = NumberFormat.getNumberInstance(Locale.US);
+ final var intf = NumberFormat.getIntegerInstance(Locale.US);
+
+ IntStream.range(0, inputList.size())
+ .forEach(i -> {
+ var input = inputList.get(i);
+ var nfExpected = nfExpectedList.get(i);
+ var result = numf.format(input);
+ if (!result.equals(nfExpected)) {
+ throw new RuntimeException("Incorrect number format. " +
+ "input: " + input + ", expected: " +
+ nfExpected + ", result: " + result);
+ }
+
+ var ifExpected = ifExpectedList.get(i);
+ result = intf.format(input);
+ if (!result.equals(ifExpected)) {
+ throw new RuntimeException("Incorrect integer format. " +
+ "input: " + input + ", expected: " +
+ ifExpected + ", result: " + result);
+ }
+ });
+ System.out.println("bug8232860Test succeeded.");
+ } else {
+ System.out.println("Test ignored. Either :-\n" +
+ "OS is neither macOS/Windows, or\n" +
+ "provider is not HOST: " + type);
+ }
+ }
}