Skip to content

Commit

Permalink
8244078: ProcessTools executeTestJvm and createJavaProcessBuilder hav…
Browse files Browse the repository at this point in the history
…e inconsistent handling of test.*.opts

Reviewed-by: dholmes, cjplummer
  • Loading branch information
stefank committed May 4, 2020
1 parent a8edd11 commit 81597d9
Show file tree
Hide file tree
Showing 93 changed files with 169 additions and 204 deletions.
Expand Up @@ -92,7 +92,7 @@ private void compileAotLibrary() {
private void runAndCheckHelloWorld(String checkString) {
ProcessBuilder pb;
try {
pb = ProcessTools.createJavaProcessBuilder(true, "-cp", ".",
pb = ProcessTools.createTestJvm("-cp", ".",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseAOT",
"-XX:AOTLibrary=./" + LIB_NAME, HELLO_WORLD_CLASS_NAME);
} catch (Exception e) {
Expand Down
Expand Up @@ -87,7 +87,7 @@ private static void runAndCheck(String option, String libName,
so, a message like "skipped $pathTolibrary aot library" or
"loaded $pathToLibrary aot library" is present for cases of
incompatible or compatible flags respectively */
pb = ProcessTools.createJavaProcessBuilder(true, "-XX:+UnlockExperimentalVMOptions",
pb = ProcessTools.createTestJvm("-XX:+UnlockExperimentalVMOptions",
"-XX:+UseAOT", "-XX:+PrintAOT", "-XX:AOTLibrary=./" + libName, option,
HelloWorldPrinter.class.getName());
} catch (Exception ex) {
Expand Down
11 changes: 5 additions & 6 deletions test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java
Expand Up @@ -142,11 +142,10 @@ public boolean generateReplay(boolean needCoreDump, String... vmopts) {
options.add(needCoreDump ? ENABLE_COREDUMP_ON_CRASH : DISABLE_COREDUMP_ON_CRASH);
options.add(EmptyMain.class.getName());
if (needCoreDump) {
crashOut = ProcessTools.executeProcess(getTestJavaCommandlineWithPrefix(
crashOut = ProcessTools.executeProcess(getTestJvmCommandlineWithPrefix(
RUN_SHELL_NO_LIMIT, options.toArray(new String[0])));
} else {
crashOut = ProcessTools.executeProcess(ProcessTools.createJavaProcessBuilder(true,
options));
crashOut = ProcessTools.executeProcess(ProcessTools.createTestJvm(options));
}
crashOutputString = crashOut.getOutput();
Asserts.assertNotEquals(crashOut.getExitValue(), 0, "Crash JVM exits gracefully");
Expand Down Expand Up @@ -190,7 +189,7 @@ public int startTest(String... additionalVmOpts) {
List<String> allAdditionalOpts = new ArrayList<>();
allAdditionalOpts.addAll(Arrays.asList(REPLAY_OPTIONS));
allAdditionalOpts.addAll(Arrays.asList(additionalVmOpts));
OutputAnalyzer oa = ProcessTools.executeProcess(getTestJavaCommandlineWithPrefix(
OutputAnalyzer oa = ProcessTools.executeProcess(getTestJvmCommandlineWithPrefix(
RUN_SHELL_ZERO_LIMIT, allAdditionalOpts.toArray(new String[0])));
return oa.getExitValue();
} catch (Throwable t) {
Expand Down Expand Up @@ -290,9 +289,9 @@ private String getCoreFileLocation(String crashOutputString) {
return null;
}

private String[] getTestJavaCommandlineWithPrefix(String prefix, String... args) {
private String[] getTestJvmCommandlineWithPrefix(String prefix, String... args) {
try {
String cmd = ProcessTools.getCommandLine(ProcessTools.createJavaProcessBuilder(true, args));
String cmd = ProcessTools.getCommandLine(ProcessTools.createTestJvm(args));
return new String[]{"sh", "-c", prefix
+ (Platform.isWindows() ? cmd.replace('\\', '/').replace(";", "\\;").replace("|", "\\|") : cmd)};
} catch(Throwable t) {
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/compiler/ciReplay/SABase.java
Expand Up @@ -57,7 +57,7 @@ public void testAction() {
}
ProcessBuilder pb;
try {
pb = ProcessTools.createJavaProcessBuilder(true, "--add-modules", "jdk.hotspot.agent",
pb = ProcessTools.createTestJvm("--add-modules", "jdk.hotspot.agent",
"--add-exports=jdk.hotspot.agent/sun.jvm.hotspot=ALL-UNNAMED",
"sun.jvm.hotspot.CLHSDB", JDKToolFinder.getTestJDKTool("java"),
TEST_CORE_FILE_NAME);
Expand Down
Expand Up @@ -113,7 +113,7 @@ static ArrayList<String> getListOfTestsByPrefix(String testPrefix, Set<String> e
String classPath = String.join(File.pathSeparator, System.getProperty("java.class.path"),
String.join(File.separator, libsDir, MXTOOL_JARFILE));

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false,
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-cp", classPath,
"com.oracle.mxtool.junit.FindClassesByAnnotatedMethods", graalUnitTestFilePath, testAnnotationName);

Expand Down Expand Up @@ -277,8 +277,7 @@ public static void main(String... args) throws Exception {

javaFlags.add("@"+GENERATED_TESTCLASSES_FILENAME);

ProcessBuilder javaPB = ProcessTools.createJavaProcessBuilder(true,
javaFlags);
ProcessBuilder javaPB = ProcessTools.createTestJvm(javaFlags);

// Some tests rely on MX_SUBPROCESS_COMMAND_FILE env variable which contains
// name of the file with java executable and java args used to launch the current process.
Expand Down
Expand Up @@ -30,8 +30,8 @@ public class Driver8015436 {
public static void main(String args[]) {
OutputAnalyzer oa;
try {
oa = ProcessTools.executeProcess(ProcessTools.createJavaProcessBuilder(
/* add test vm options */ true, Test8015436.class.getName()));
oa = ProcessTools.executeProcess(ProcessTools.createTestJvm(
Test8015436.class.getName()));
} catch (Exception ex) {
throw new Error("TESTBUG: exception while running child process: " + ex, ex);
}
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/compiler/types/correctness/OffTest.java
Expand Up @@ -86,7 +86,7 @@ private static void runTest() throws Exception {
OPTIONS[TYPE_PROFILE_INDEX] = typeProfileLevel;
OPTIONS[USE_TYPE_SPECULATION_INDEX] = useTypeSpeculation;
OPTIONS[PROFILING_TYPE_INDEX] = type.name();
ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder(/* addTestVmOptions= */ true, OPTIONS);
ProcessBuilder processBuilder = ProcessTools.createTestJvm(OPTIONS);
OutputAnalyzer outputAnalyzer = new OutputAnalyzer(processBuilder.start());
outputAnalyzer.shouldHaveExitValue(0);
}
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/TestAllocateHeapAt.java
Expand Up @@ -40,8 +40,7 @@

public class TestAllocateHeapAt {
public static void main(String args[]) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
ProcessBuilder pb = ProcessTools.createTestJvm(
"-XX:AllocateHeapAt=" + System.getProperty("test.dir", "."),
"-Xlog:gc+heap=info",
"-Xmx32m",
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/TestAllocateHeapAtError.java
Expand Up @@ -46,8 +46,7 @@ public static void main(String args[]) throws Exception {
f = new File(test_dir, UUID.randomUUID().toString());
} while(f.exists());

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
ProcessBuilder pb = ProcessTools.createTestJvm(
"-XX:AllocateHeapAt=" + f.getName(),
"-Xlog:gc+heap=info",
"-Xmx32m",
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/TestAllocateHeapAtMultiple.java
Expand Up @@ -62,7 +62,7 @@ public static void main(String args[]) throws Exception {
"-Xlog:gc+heap=info",
"-version"});

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

System.out.println("Output:\n" + output.getOutput());
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/TestVerifyDuringStartup.java
Expand Up @@ -38,8 +38,7 @@

public class TestVerifyDuringStartup {
public static void main(String args[]) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
ProcessBuilder pb = ProcessTools.createTestJvm(
"-XX:-UseTLAB",
"-XX:+UnlockDiagnosticVMOptions",
"-XX:+VerifyDuringStartup",
Expand Down
18 changes: 7 additions & 11 deletions test/hotspot/jtreg/gc/arguments/GCArguments.java
Expand Up @@ -67,22 +67,18 @@ static private String[] withDefaults(String[] arguments) {
}

static public ProcessBuilder createJavaProcessBuilder(List<String> arguments) {
return createJavaProcessBuilder(false, arguments);
return createJavaProcessBuilder(arguments.toArray(String[]::new));
}

static public ProcessBuilder createJavaProcessBuilder(boolean addTestVmAndJavaOptions,
List<String> arguments) {
return createJavaProcessBuilder(addTestVmAndJavaOptions,
arguments.toArray(String[]::new));
static public ProcessBuilder createJavaProcessBuilder(String... arguments) {
return ProcessTools.createJavaProcessBuilder(withDefaults(arguments));
}

static public ProcessBuilder createJavaProcessBuilder(String... arguments) {
return createJavaProcessBuilder(false, arguments);
static public ProcessBuilder createTestJvm(List<String> arguments) {
return createTestJvm(arguments.toArray(String[]::new));
}

static public ProcessBuilder createJavaProcessBuilder(boolean addTestVmAndJavaOptions,
String... arguments) {
return ProcessTools.createJavaProcessBuilder(addTestVmAndJavaOptions,
withDefaults(arguments));
static public ProcessBuilder createTestJvm(String... arguments) {
return ProcessTools.createTestJvm(withDefaults(arguments));
}
}
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/arguments/TestUseNUMAInterleaving.java
Expand Up @@ -41,8 +41,7 @@
public class TestUseNUMAInterleaving {

public static void main(String[] args) throws Exception {
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
true,
ProcessBuilder pb = GCArguments.createTestJvm(
"-XX:+UseNUMA",
"-XX:+PrintFlagsFinal",
"-version");
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/g1/TestShrinkAuxiliaryData.java
Expand Up @@ -102,7 +102,7 @@ protected void test() throws Exception {
}

private void performTest(List<String> opts) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, opts);
ProcessBuilder pb = ProcessTools.createTestJvm(opts);

OutputAnalyzer output = new OutputAnalyzer(pb.start());
System.out.println(output.getStdout());
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java
Expand Up @@ -90,8 +90,7 @@ private static OutputAnalyzer spawnMixedGCProvoker(String... extraFlags)
Collections.addAll(testOpts, extraFlags);
testOpts.add(RunMixedGC.class.getName());
System.out.println(testOpts);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false,
testOpts);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(testOpts);
return new OutputAnalyzer(pb.start());
}
}
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java
Expand Up @@ -84,8 +84,7 @@ private static void testMetaSpaceUpdate() throws Exception {
String testSrc= "-Dtest.src=" + System.getProperty("test.src", ".");

ProcessBuilder pb =
ProcessTools.createJavaProcessBuilder(
true,
ProcessTools.createTestJvm(
"-Xlog:gc*",
"-Xbootclasspath/a:.",
"-XX:+UnlockDiagnosticVMOptions",
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAt.java
Expand Up @@ -59,7 +59,7 @@ private static void runTest(String... extraFlags) throws Exception {
ArrayList<String> flags = new ArrayList<>();
Collections.addAll(flags, commonFlags);
Collections.addAll(flags, extraFlags);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

output.shouldHaveExitValue(0);
Expand Down
Expand Up @@ -89,7 +89,7 @@ private static OutputAnalyzer runTest(String... extraFlags) throws Exception {
Collections.addAll(flags, commonFlags);
Collections.addAll(flags, extraFlags);

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
return output;
}
Expand Down
Expand Up @@ -63,7 +63,7 @@ public static void main(String args[]) throws Exception {
Collections.addAll(flags, new String[] {"-XX:+UnlockExperimentalVMOptions",
"-XX:AllocateOldGenAt=" + test_dir,
"-version"});
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

System.out.println("Output:\n" + output.getOutput());
Expand Down
Expand Up @@ -72,7 +72,7 @@ private static void runTest(String... extraFlags) throws Exception {
Collections.addAll(flags, extraFlags);
flags.add(HumongousObjectTest.class.getName());

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);

OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(0);
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/nvdimm/TestOldObjectsOnNvdimm.java
Expand Up @@ -71,7 +71,7 @@ private static void runTest(String... extraFlags) throws Exception {
Collections.addAll(flags, extraFlags);
flags.add(OldObjectTest.class.getName());

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);

OutputAnalyzer output = new OutputAnalyzer(pb.start());
System.out.println(output.getStdout());
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/nvdimm/TestYoungObjectsOnDram.java
Expand Up @@ -72,7 +72,7 @@ private static void runTest(String... extraFlags) throws Exception {
Collections.addAll(flags, extraFlags);
flags.add(YoungObjectTest.class.getName());

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
ProcessBuilder pb = ProcessTools.createTestJvm(flags);

OutputAnalyzer output = new OutputAnalyzer(pb.start());
System.out.println(output.getStdout());
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/gc/whitebox/TestWBGC.java
Expand Up @@ -43,8 +43,7 @@
public class TestWBGC {

public static void main(String args[]) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
ProcessBuilder pb = ProcessTools.createTestJvm(
"-Xbootclasspath/a:.",
"-XX:+UnlockDiagnosticVMOptions",
"-XX:+WhiteBoxAPI",
Expand Down
Expand Up @@ -36,7 +36,7 @@ public class TestUnrecognizedVmOption {

public static void main(String[] args) throws Exception {
ProcessBuilder pb =
ProcessTools.createJavaProcessBuilder(true, "-showversion", "-XX:" + OPTION);
ProcessTools.createTestJvm("-showversion", "-XX:" + OPTION);
new OutputAnalyzer(pb.start())
.shouldNotHaveExitValue(0)
.shouldContain("Unrecognized VM option")
Expand Down
Expand Up @@ -97,7 +97,7 @@ public Class<?> loadClass(String name) throws ClassNotFoundException {
};

cl.loadClass(classTestCName);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, "-cp", ".", classTestCName);
ProcessBuilder pb = ProcessTools.createTestJvm("-cp", ".", classTestCName);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
String test_output = output.getOutput();
if (test_output == null) {
Expand Down
Expand Up @@ -42,7 +42,7 @@
public class UnsupportedClassFileVersion implements Opcodes {
public static void main(String... args) throws Exception {
writeClassFile();
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, "-cp", ".", "ClassFile");
ProcessBuilder pb = ProcessTools.createTestJvm("-cp", ".", "ClassFile");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("ClassFile has been compiled by a more recent version of the " +
"Java Runtime (class file version 99.0), this version of " +
Expand Down
Expand Up @@ -48,7 +48,7 @@ public class invocationC1Tests {
public static void runTest(String whichTests, String classFileVersion) throws Throwable {
System.out.println("\nC1 invocation tests, Tests: " + whichTests +
", class file version: " + classFileVersion);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false, "-Xmx128M",
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xmx128M",
"-Xcomp", "-XX:TieredStopAtLevel=1",
"--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED",
whichTests, "--classfile_version=" + classFileVersion);
Expand Down
Expand Up @@ -49,7 +49,7 @@ public class invocationGraalTests {
public static void runTest(String whichTests, String classFileVersion) throws Throwable {
System.out.println("\nGraal invocation tests, Tests: " + whichTests +
", class file version: " + classFileVersion);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false, "-Xmx128M",
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xmx128M",
"-XX:+UnlockExperimentalVMOptions", "-XX:+EnableJVMCI", "-XX:+UseJVMCICompiler",
"--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED",
whichTests, "--classfile_version=" + classFileVersion);
Expand Down
Expand Up @@ -47,7 +47,7 @@ public class invokeinterfaceTests {
public static void runTest(String classFileVersion, String option) throws Throwable {
System.out.println("\ninvokeinterface invocation tests, option: " + option +
", class file version: " + classFileVersion);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false, "-Xmx128M", option,
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xmx128M", option,
"--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED",
"invokeinterface.Generator", "--classfile_version=" + classFileVersion);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
Expand Down
Expand Up @@ -46,7 +46,7 @@ public class invokespecialTests {
public static void runTest(String classFileVersion, String option) throws Throwable {
System.out.println("\ninvokespecial invocation tests, option: " + option +
", class file version: " + classFileVersion);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false, "-Xmx128M", option,
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xmx128M", option,
"--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED",
"invokespecial.Generator", "--classfile_version=" + classFileVersion);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
Expand Down
Expand Up @@ -46,7 +46,7 @@ public class invokevirtualTests {
public static void runTest(String classFileVersion, String option) throws Throwable {
System.out.println("\ninvokevirtual invocation tests, option: " + option +
", class file version: " + classFileVersion);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(false, "-Xmx128M", option,
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xmx128M", option,
"--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED",
"invokevirtual.Generator", "--classfile_version=" + classFileVersion);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/runtime/StackTrace/LargeClassTest.java
Expand Up @@ -46,7 +46,7 @@
public class LargeClassTest implements Opcodes {
public static void main(String... args) throws Exception {
writeClassFile();
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, "-cp", ".", "Large");
ProcessBuilder pb = ProcessTools.createTestJvm("-cp", ".", "Large");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(0);
}
Expand Down
3 changes: 1 addition & 2 deletions test/hotspot/jtreg/runtime/Unsafe/RangeCheck.java
Expand Up @@ -44,8 +44,7 @@ public static void main(String args[]) throws Exception {
return;
}

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
ProcessBuilder pb = ProcessTools.createTestJvm(
"-Xmx128m",
"--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:-CreateCoredumpOnCrash",
Expand Down

0 comments on commit 81597d9

Please sign in to comment.