Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8244010: Simplify usages of ProcessTools.createJavaProcessBuilder in our tests #1397

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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