Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
8244010: Simplify usages of ProcessTools.createJavaProcessBuilder in …
…our tests

Reviewed-by: mbaesken
Backport-of: 35af52d
  • Loading branch information
GoeLin committed Oct 12, 2022
1 parent 605e390 commit 64a3b18
Show file tree
Hide file tree
Showing 80 changed files with 256 additions and 234 deletions.
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java
Expand Up @@ -141,7 +141,7 @@ public boolean generateReplay(boolean needCoreDump, String... vmopts) {
RUN_SHELL_NO_LIMIT, options.toArray(new String[0])));
} else {
crashOut = ProcessTools.executeProcess(ProcessTools.createJavaProcessBuilder(true,
options.toArray(new String[0])));
options));
}
crashOutputString = crashOut.getOutput();
Asserts.assertNotEquals(crashOut.getExitValue(), 0, "Crash JVM exits gracefully");
Expand Down
Expand Up @@ -264,7 +264,7 @@ public static void main(String... args) throws Exception {
javaFlags.add("@"+GENERATED_TESTCLASSES_FILENAME);

ProcessBuilder javaPB = ProcessTools.createJavaProcessBuilder(true,
javaFlags.toArray(new String[javaFlags.size()]));
javaFlags);
System.out.println("INFO: run command: " + String.join(" ", javaPB.command()));

OutputAnalyzer outputAnalyzer = new OutputAnalyzer(javaPB.start());
Expand Down
Expand Up @@ -146,8 +146,7 @@ public static OutputAnalyzer runTest(Class<? extends Expr> expr,
new Integer(iterations).toString()
});

OutputAnalyzer outputAnalyzer = ProcessTools.
executeTestJvm(vmOpts.toArray(new String[vmOpts.size()]));
OutputAnalyzer outputAnalyzer = ProcessTools.executeTestJvm(vmOpts);

outputAnalyzer.shouldHaveExitValue(0);

Expand Down
Expand Up @@ -61,8 +61,7 @@ static void runTest(Class<?> test, String... extraArgs) throws Exception {
argsList.add(test.getName());
argsList.add(Integer.toString(ITERATIONS));

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
argsList.toArray(new String[argsList.size()]));
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(argsList);

OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());

Expand Down
Expand Up @@ -64,8 +64,11 @@ public static void main(String[] args) throws Exception {
ProcessBuilder pb;
OutputAnalyzer out;

String[] arguments = {"-XX:+UnlockExperimentalVMOptions", "-XX:+EnableJVMCI", "-XX:+PrintFlagsFinal", "-version"};
pb = ProcessTools.createJavaProcessBuilder(arguments);
pb = ProcessTools.createJavaProcessBuilder(
"-XX:+UnlockExperimentalVMOptions",
"-XX:+EnableJVMCI",
"-XX:+PrintFlagsFinal",
"-version");
out = new OutputAnalyzer(pb.start());

out.shouldHaveExitValue(0);
Expand Down
Expand Up @@ -42,12 +42,15 @@ public class TestLinkageErrorInGenerateOopMap {
public static void main(String args[]) throws Exception {
if (args.length == 0) {
// Spawn new VM instance to execute test
String[] flags = {"-noverify", "-XX:-TieredCompilation",
"-XX:CompileCommand=dontinline,compiler/linkage/OSRWithBadOperandStack.m*",
"-XX:-CreateCoredumpOnCrash",
"-Xmx64m",
"compiler.linkage.TestLinkageErrorInGenerateOopMap", "run"};
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(flags);
String[] flags = {};
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-noverify",
"-XX:-TieredCompilation",
"-XX:CompileCommand=dontinline,compiler/linkage/OSRWithBadOperandStack.m*",
"-XX:-CreateCoredumpOnCrash",
"-Xmx64m",
"compiler.linkage.TestLinkageErrorInGenerateOopMap",
"run");
OutputAnalyzer out = new OutputAnalyzer(pb.start());
if (out.getExitValue() != 0) {
// OSR compilation should exit with an error during OopMap verification
Expand Down
7 changes: 2 additions & 5 deletions test/hotspot/jtreg/gc/TestAgeOutput.java
Expand Up @@ -84,18 +84,15 @@ public static void checkPattern(String pattern, String what) throws Exception {
}

public static void runTest(String gcArg) throws Exception {
final String[] arguments = {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-Xbootclasspath/a:.",
"-XX:+UnlockExperimentalVMOptions",
"-XX:+UnlockDiagnosticVMOptions",
"-XX:+WhiteBoxAPI",
"-XX:+" + gcArg,
"-Xmx10M",
"-Xlog:gc+age=trace",
GCTest.class.getName()
};

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(arguments);
GCTest.class.getName());
OutputAnalyzer output = new OutputAnalyzer(pb.start());

output.shouldHaveExitValue(0);
Expand Down
10 changes: 4 additions & 6 deletions test/hotspot/jtreg/gc/TestAllocateHeapAt.java
Expand Up @@ -40,15 +40,13 @@

public class TestAllocateHeapAt {
public static void main(String args[]) throws Exception {
String test_dir = System.getProperty("test.dir", ".");
String[] flags = {
"-XX:AllocateHeapAt=" + test_dir,
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
"-XX:AllocateHeapAt=" + System.getProperty("test.dir", "."),
"-Xlog:gc+heap=info",
"-Xmx32m",
"-Xms32m",
"-version"};

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

System.out.println("Output:\n" + output.getOutput());
Expand Down
7 changes: 3 additions & 4 deletions test/hotspot/jtreg/gc/TestAllocateHeapAtError.java
Expand Up @@ -46,14 +46,13 @@ public static void main(String args[]) throws Exception {
f = new File(test_dir, UUID.randomUUID().toString());
} while(f.exists());

String[] flags = {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
"-XX:AllocateHeapAt=" + f.getName(),
"-Xlog:gc+heap=info",
"-Xmx32m",
"-Xms32m",
"-version"};

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
"-version");
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/TestAllocateHeapAtMultiple.java
Expand Up @@ -62,8 +62,7 @@ public static void main(String args[]) throws Exception {
"-Xlog:gc+heap=info",
"-version"});

ProcessBuilder pb =
ProcessTools.createJavaProcessBuilder(true, flags.toArray(String[]::new));
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

System.out.println("Output:\n" + output.getOutput());
Expand Down
7 changes: 5 additions & 2 deletions test/hotspot/jtreg/gc/TestCardTablePageCommits.java
Expand Up @@ -45,8 +45,11 @@ public static void main(String args[]) throws Exception {
// because of 8kB pages, assume 4 KB pages for all other CPUs.
String Xmx = Platform.isSparc() ? "-Xmx8m" : "-Xmx4m";

String[] opts = {Xmx, "-XX:NativeMemoryTracking=detail", "-XX:+UseParallelGC", "-version"};
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(opts);
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
Xmx,
"-XX:NativeMemoryTracking=detail",
"-XX:+UseParallelGC",
"-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(0);
}
Expand Down
7 changes: 2 additions & 5 deletions test/hotspot/jtreg/gc/TestNumWorkerOutput.java
Expand Up @@ -75,18 +75,15 @@ public static void checkPatternOnce(String pattern, String what) throws Exceptio
}

public static void runTest(String gcArg) throws Exception {
final String[] arguments = {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-Xbootclasspath/a:.",
"-XX:+UnlockExperimentalVMOptions",
"-XX:+UnlockDiagnosticVMOptions",
"-XX:+WhiteBoxAPI",
"-XX:+" + gcArg,
"-Xmx10M",
"-XX:+PrintGCDetails",
GCTest.class.getName()
};

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(arguments);
GCTest.class.getName());
OutputAnalyzer output = new OutputAnalyzer(pb.start());

output.shouldHaveExitValue(0);
Expand Down
12 changes: 5 additions & 7 deletions test/hotspot/jtreg/gc/TestSmallHeap.java
Expand Up @@ -102,13 +102,11 @@ public static void main(String[] args) throws Exception {

private static void verifySmallHeapSize(String gc, long expectedMaxHeap) throws Exception {
long minMaxHeap = 4 * 1024 * 1024;
LinkedList<String> vmOptions = new LinkedList<>();
vmOptions.add(gc);
vmOptions.add("-Xmx" + minMaxHeap);
vmOptions.add("-XX:+PrintFlagsFinal");
vmOptions.add(VerifyHeapSize.class.getName());

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[0]));
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
gc,
"-Xmx" + minMaxHeap,
"-XX:+PrintFlagsFinal",
VerifyHeapSize.class.getName());
OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
analyzer.shouldHaveExitValue(0);

Expand Down
7 changes: 3 additions & 4 deletions test/hotspot/jtreg/gc/TestVerifyDuringStartup.java
Expand Up @@ -38,14 +38,13 @@

public class TestVerifyDuringStartup {
public static void main(String args[]) throws Exception {
String[] flags = {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
true,
"-XX:-UseTLAB",
"-XX:+UnlockDiagnosticVMOptions",
"-XX:+VerifyDuringStartup",
"-Xlog:gc+verify=debug",
"-version"};

ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true, flags);
"-version");
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/TestVerifySilently.java
Expand Up @@ -58,8 +58,7 @@ private static OutputAnalyzer runTest(boolean verifySilently) throws Exception {
"-XX:+VerifyAfterGC",
(verifySilently ? "-Xlog:gc":"-Xlog:gc+verify=debug"),
TestVerifySilentlyRunSystemGC.class.getName()});
ProcessBuilder pb =
ProcessTools.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOpts);
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/TestVerifySubSet.java
Expand Up @@ -56,8 +56,7 @@ private static OutputAnalyzer runTest(String subset) throws Exception {
"-Xlog:gc+verify=debug",
"-XX:VerifySubSet="+subset,
TestVerifySubSetRunSystemGC.class.getName()});
ProcessBuilder pb =
ProcessTools.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOpts);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

System.out.println("Output:\n" + output.getOutput());
Expand Down
11 changes: 10 additions & 1 deletion test/hotspot/jtreg/gc/arguments/GCArguments.java
Expand Up @@ -66,6 +66,16 @@ static private String[] withDefaults(String[] arguments) {
return augmented.toArray(new String[augmented.size()]);
}

static public ProcessBuilder createJavaProcessBuilder(List<String> arguments) {
return createJavaProcessBuilder(false, arguments);
}

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

static public ProcessBuilder createJavaProcessBuilder(String... arguments) {
return createJavaProcessBuilder(false, arguments);
}
Expand All @@ -75,5 +85,4 @@ static public ProcessBuilder createJavaProcessBuilder(boolean addTestVmAndJavaOp
return ProcessTools.createJavaProcessBuilder(addTestVmAndJavaOptions,
withDefaults(arguments));
}

}
Expand Up @@ -80,7 +80,7 @@ private static void runG1ConcMarkStepDurationMillisTest(String expectedValue, in

Collections.addAll(vmOpts, "-XX:+UseG1GC", "-XX:G1ConcMarkStepDurationMillis="+expectedValue, "-XX:+PrintFlagsFinal", "-version");

ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

output.shouldHaveExitValue(expectedResult == PASS ? 0 : 1);
Expand Down
Expand Up @@ -71,7 +71,7 @@ private static void runG1ConcRefinementThreadsTest(String[] passedOpts,
}
Collections.addAll(vmOpts, "-XX:+UseG1GC", "-XX:+PrintFlagsFinal", "-version");

ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

output.shouldHaveExitValue(0);
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java
Expand Up @@ -54,7 +54,7 @@ private static void checkG1HeapRegionSize(String[] flags, int expectedValue, int
flagList.add("-XX:+PrintFlagsFinal");
flagList.add("-version");

ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flagList.toArray(new String[0]));
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flagList);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(exitValue);

Expand Down
4 changes: 2 additions & 2 deletions test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java
Expand Up @@ -65,8 +65,8 @@ private static final class OptionDescription {
};

private static void check(String flag, boolean is_valid) throws Exception {
String[] flags = new String[] { "-XX:+UseG1GC", flag, "-version" };
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flags);
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
"-XX:+UseG1GC", flag, "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
if (is_valid) {
output.shouldHaveExitValue(0);
Expand Down
Expand Up @@ -100,7 +100,7 @@ public static void positiveTest(int minRatio, boolean useXminf,
Boolean.toString(shrinkHeapInSteps)
);

ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions);
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
analyzer.shouldHaveExitValue(0);
}
Expand All @@ -125,7 +125,7 @@ public static void negativeTest(int minRatio, boolean useXminf,
"--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED",
"-version"
);
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions);
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
analyzer.shouldHaveExitValue(1);
analyzer.shouldContain("Error: Could not create the Java Virtual Machine.");
Expand Down
4 changes: 2 additions & 2 deletions test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java
Expand Up @@ -108,7 +108,7 @@ private static void checkIncompatibleNewSize(String[] flags) throws Exception {
finalargs.addAll(Arrays.asList(flags));
finalargs.add("-version");

ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs.toArray(new String[0]));
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("Initial young gen size set larger than the maximum young gen size");
}
Expand All @@ -131,7 +131,7 @@ private static String getMaxNewSize(String[] flags) throws Exception {
finalargs.add("-XX:+PrintFlagsFinal");
finalargs.add("-version");

ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs.toArray(new String[0]));
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs);
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldHaveExitValue(0);
String stdout = output.getStdout();
Expand Down
Expand Up @@ -104,7 +104,7 @@ public static void testSurvivorRatio(int survivorRatio,
Boolean.toString(useAdaptiveSizePolicy)
);
vmOptions.removeIf((String p) -> p.isEmpty());
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions);
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
analyzer.shouldHaveExitValue(0);
}
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java
Expand Up @@ -84,7 +84,7 @@ public static void testNewRatio(int ratio, LinkedList<String> options) throws Ex
Integer.toString(ratio)
);

ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions);
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
analyzer.shouldHaveExitValue(0);
System.out.println(analyzer.getOutput());
Expand Down
2 changes: 1 addition & 1 deletion test/hotspot/jtreg/gc/arguments/TestNewSizeFlags.java
Expand Up @@ -168,7 +168,7 @@ private static OutputAnalyzer startVM(LinkedList<String> options,
Long.toString(maxHeapSize)
);
vmOptions.removeIf(String::isEmpty);
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions);
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
return analyzer;
}
Expand Down
Expand Up @@ -163,7 +163,7 @@ private static void runTenuringFlagsConsistencyTest(String[] tenuringFlags,
}
Collections.addAll(vmOpts, "-XX:+UseParallelGC", "-XX:+PrintFlagsFinal", "-version");

ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts);
OutputAnalyzer output = new OutputAnalyzer(pb.start());

if (shouldFail) {
Expand Down

1 comment on commit 64a3b18

@openjdk-notifier
Copy link

@openjdk-notifier openjdk-notifier bot commented on 64a3b18