On Thu, 20 Nov 2025 22:55:41 GMT, Justin Lu <[email protected]> wrote:
> JDK-8260555 exposed
> test/jdk/java/text/Format/NumberFormat/NumberRoundTrip.java as being
> susceptible to timeouts.
> While the timeout factor is reverted, this test was testing too many inputs,
> and should be changed.
> Originally, it was testing (~1000 locales * 4 factories) against ~30 numeric
> inputs. The test does not need to be exhaustive to this degree.
>
> The total amount of locales is changed to sample around a 1/4 of those
> provided by the provider. The numeric inputs are reduced to about ~20. (The
> fixed ones remain, and the random ones are cut in half.)
>
> Locally, I observe average execution for this test to be about ~1.3 seconds,
> compared to ~3.4 seconds previously. The PR also does a drive-by clean up of
> the test, i.e. getting rid of the unnecessary escaping + string
> manipulation/printing and separating the test inputs from the actual testing
> work done.
test/jdk/java/text/Format/NumberFormat/NumberRoundTrip.java line 143:
> 141: // Return a random value from -range..+range.
> 142: private static double randomDouble(double range) {
> 143: double a = Math.random();
I would suggest using `jdk.test.lib.RandomFactory`, as this supports
reproducible values in case of a randomised test failure.
import jdk.test.lib.RandomFactory;
...
* @library /test/lib
* @build jdk.test.lib.RandomFactory
...
private static final Random RANDOM = RandomFactory.getRandom();
...
private static double randomDouble(double range) {
double a = RANDOM.nextDouble();
...
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28443#discussion_r2549709717