8378583: (process) ProcessBuilder tests that span deeper trees must pass launchMechanism to their children

Reviewed-by: stuefe, bchristi
This commit is contained in:
Frederic Thevenet 2026-05-18 08:38:47 +00:00 committed by Thomas Stuefe
parent a2b9e941d6
commit 976297dec6
2 changed files with 17 additions and 6 deletions

View File

@ -602,11 +602,22 @@ public class Basic {
private static final String classpath =
System.getProperty("java.class.path");
private static final List<String> javaChildArgs =
Arrays.asList(javaExe,
"-XX:+DisplayVMOutputToStderr",
"-classpath", absolutifyPath(classpath),
"Basic$JavaChild");
private static List<String> prepareJavaChildArgs() {
List<String> javaArgs = new ArrayList<>();
javaArgs.add(javaExe);
javaArgs.add("-XX:+DisplayVMOutputToStderr");
// Propagate launchMechanism mode to spawned java processes if specified.
var launchMechanism = System.getProperty("jdk.lang.Process.launchMechanism");
if (launchMechanism != null) {
javaArgs.add("-Djdk.lang.Process.launchMechanism=" + launchMechanism);
}
javaArgs.add("-classpath");
javaArgs.add(absolutifyPath(classpath));
javaArgs.add("Basic$JavaChild");
return javaArgs;
}
private static final List<String> javaChildArgs = prepareJavaChildArgs();
private static void testEncoding(String encoding, String tested) {
try {

View File

@ -38,7 +38,7 @@
* @requires (os.family != "windows")
* @requires vm.flagless
* @library /test/lib
* @run main/othervm -Xmx64m -Djdk.lang.Process.launchMechanism=FORK InvalidWorkDir
* @run main/othervm -Xmx64m -Djdk.lang.Process.launchMechanism=POSIX_SPAWN InvalidWorkDir
*/
import jdk.test.lib.process.OutputAnalyzer;