commit d475cd8e51cec3aca9e541396f0928377d9771c1 Author: Jaikiran Pai Date: Fri Jun 7 20:40:58 2024 +0530 7903746: jtreg tests run extremely slow on some environments due to hostname lookups diff --git a/src/share/classes/com/sun/javatest/regtest/config/RegressionParameters.java b/src/share/classes/com/sun/javatest/regtest/config/RegressionParameters.java index 5a64bd7..7a5877c 100644 --- a/src/share/classes/com/sun/javatest/regtest/config/RegressionParameters.java +++ b/src/share/classes/com/sun/javatest/regtest/config/RegressionParameters.java @@ -27,8 +27,10 @@ package com.sun.javatest.regtest.config; import java.io.File; import java.io.IOException; +import java.net.InetAddress; import java.net.MalformedURLException; import java.net.URL; +import java.net.UnknownHostException; import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; @@ -169,12 +171,14 @@ public final class RegressionParameters @Override public TestEnvironment getEnv() { + final TestEnvironment testEnv; try { - return new RegressionEnvironment(this); - } - catch (com.sun.javatest.TestEnvironment.Fault e) { + testEnv = new RegressionEnvironment(this); + } catch (com.sun.javatest.TestEnvironment.Fault e) { return null; } + testEnv.put("hostname", LazyHostNameLookup.HOST_NAME); + return testEnv; } @Override @@ -1487,4 +1491,18 @@ public final class RegressionParameters private Pattern retainFilesPattern; private static final I18NResourceBundle i18n = I18NResourceBundle.getBundleForClass(RegressionParameters.class); + + private static final class LazyHostNameLookup { + private static final String HOST_NAME; + + static { + String hostname; + try { + hostname = InetAddress.getLocalHost().getCanonicalHostName(); + } catch (UnknownHostException e) { + hostname = "127.0.0.1"; + } + HOST_NAME = hostname; + } + } } diff --git a/src/share/classes/com/sun/javatest/regtest/exec/RegressionScript.java b/src/share/classes/com/sun/javatest/regtest/exec/RegressionScript.java index 095f259..203964f 100644 --- a/src/share/classes/com/sun/javatest/regtest/exec/RegressionScript.java +++ b/src/share/classes/com/sun/javatest/regtest/exec/RegressionScript.java @@ -128,14 +128,9 @@ public class RegressionScript extends Script { // defaults testResult = getTestResult(); - - String hostname; - try { - hostname = InetAddress.getLocalHost().getCanonicalHostName(); - } catch (UnknownHostException e) { - hostname = "127.0.0.1"; - } - testResult.putProperty("hostname", hostname); + String[] vals = regEnv.getExtraValues().get("hostname"); + String hostName = (vals == null || vals.length == 0) ? "127.0.0.1" : vals[0]; + testResult.putProperty("hostname", hostName); String[] props = { "user.name" }; for (String p: props) { testResult.putProperty(p, System.getProperty(p));