Skip to content

Commit d12c2e2

Browse files
committed
8217170: gc/arguments/TestUseCompressedOopsErgo.java timed out
Disable ZapUnusedHeapArea and VerifyBeforeExit for gc/arguments tests. Reviewed-by: mdoerr Backport-of: b85ebc1
1 parent c10e0de commit d12c2e2

29 files changed

+153
-54
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*
2+
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
3+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+
*
5+
* This code is free software; you can redistribute it and/or modify it
6+
* under the terms of the GNU General Public License version 2 only, as
7+
* published by the Free Software Foundation.
8+
*
9+
* This code is distributed in the hope that it will be useful, but WITHOUT
10+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12+
* version 2 for more details (a copy is included in the LICENSE file that
13+
* accompanied this code).
14+
*
15+
* You should have received a copy of the GNU General Public License version
16+
* 2 along with this work; if not, write to the Free Software Foundation,
17+
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18+
*
19+
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20+
* or visit www.oracle.com if you need additional information or have any
21+
* questions.
22+
*/
23+
24+
package gc.arguments;
25+
26+
import java.util.ArrayList;
27+
import java.util.Collections;
28+
import java.util.List;
29+
import jdk.test.lib.Platform;
30+
import jdk.test.lib.process.ProcessTools;
31+
32+
/**
33+
* Helper class for adding options to child processes that should be
34+
* used by all of the argument tests in this package. The default
35+
* options are added at the front, to allow them to be overridden by
36+
* explicit options from any particular test.
37+
*/
38+
39+
public final class GCArguments {
40+
41+
// Avoid excessive execution time.
42+
static private void disableZapUnusedHeapArea(List<String> arguments) {
43+
// Develop option, only available in debug builds.
44+
if (Platform.isDebugBuild()) {
45+
arguments.add("-XX:-ZapUnusedHeapArea");
46+
}
47+
}
48+
49+
// Avoid excessive execution time.
50+
static private void disableVerifyBeforeExit(List<String> arguments) {
51+
// Diagnostic option, default enabled in debug builds.
52+
if (Platform.isDebugBuild()) {
53+
arguments.add("-XX:-VerifyBeforeExit");
54+
}
55+
}
56+
57+
static private void addDefaults(List<String> arguments) {
58+
disableZapUnusedHeapArea(arguments);
59+
disableVerifyBeforeExit(arguments);
60+
}
61+
62+
static private String[] withDefaults(String[] arguments) {
63+
List<String> augmented = new ArrayList<String>();
64+
addDefaults(augmented);
65+
Collections.addAll(augmented, arguments);
66+
return augmented.toArray(new String[augmented.size()]);
67+
}
68+
69+
static public ProcessBuilder createJavaProcessBuilder(String... arguments) {
70+
return createJavaProcessBuilder(false, arguments);
71+
}
72+
73+
static public ProcessBuilder createJavaProcessBuilder(boolean addTestVmAndJavaOptions,
74+
String... arguments) {
75+
return ProcessTools.createJavaProcessBuilder(addTestVmAndJavaOptions,
76+
withDefaults(arguments));
77+
}
78+
79+
}

test/hotspot/jtreg/gc/arguments/TestAggressiveHeap.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* @requires vm.gc.Parallel
3131
* @summary Test argument processing for -XX:+AggressiveHeap.
3232
* @library /test/lib
33+
* @library /
3334
* @modules java.base java.management
3435
* @run driver gc.arguments.TestAggressiveHeap
3536
*/
@@ -66,7 +67,7 @@ public static void main(String args[]) throws Exception {
6667
" *bool +UseParallelGC *= *true +\\{product\\} *\\{command line\\}";
6768

6869
private static void testFlag() throws Exception {
69-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
70+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
7071
option, heapSizeOption, "-XX:+PrintFlagsFinal", "-version");
7172

7273
OutputAnalyzer output = new OutputAnalyzer(pb.start());

test/hotspot/jtreg/gc/arguments/TestArrayAllocatorMallocLimit.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* @bug 8054823
3131
* @key gc
3232
* @library /test/lib
33+
* @library /
3334
* @modules java.base/jdk.internal.misc
3435
* java.management
3536
* @run driver gc.arguments.TestArrayAllocatorMallocLimit
@@ -52,7 +53,7 @@ public static void main(String [] args) throws Exception {
5253
private static final String printFlagsFinalPattern = " *size_t *" + flagName + " *:?= *(\\d+) *\\{experimental\\} *";
5354

5455
public static void testDefaultValue() throws Exception {
55-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
56+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
5657
"-XX:+UnlockExperimentalVMOptions", "-XX:+PrintFlagsFinal", "-version");
5758

5859
OutputAnalyzer output = new OutputAnalyzer(pb.start());
@@ -78,7 +79,7 @@ public static void testDefaultValue() throws Exception {
7879
public static void testSetValue() throws Exception {
7980
long flagValue = 2048;
8081

81-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
82+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
8283
"-XX:+UnlockExperimentalVMOptions", "-XX:" + flagName + "=" + flagValue, "-XX:+PrintFlagsFinal", "-version");
8384

8485
OutputAnalyzer output = new OutputAnalyzer(pb.start());

test/hotspot/jtreg/gc/arguments/TestCompressedClassFlags.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
* @summary Tests that VM prints a warning when -XX:CompressedClassSpaceSize
3434
* is used together with -XX:-UseCompressedClassPointers
3535
* @library /test/lib
36+
* @library /
3637
* @modules java.base/jdk.internal.misc
3738
* java.management
3839
* @run main gc.arguments.TestCompressedClassFlags
@@ -50,7 +51,7 @@ public static void main(String[] args) throws Exception {
5051
}
5152

5253
private static OutputAnalyzer runJava(String ... args) throws Exception {
53-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args);
54+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(args);
5455
return new OutputAnalyzer(pb.start());
5556
}
5657
}

test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
* @bug 8068579
3030
* @key gc
3131
* @library /test/lib
32+
* @library /
3233
* @requires vm.gc=="null"
3334
* @modules java.base/jdk.internal.misc
3435
* java.management
@@ -41,13 +42,13 @@
4142
public class TestDisableDefaultGC {
4243
public static void main(String[] args) throws Exception {
4344
// Start VM, disabling all possible default GCs
44-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:-UseSerialGC",
45-
"-XX:-UseParallelGC",
46-
"-XX:-UseG1GC",
47-
"-XX:-UseConcMarkSweepGC",
48-
"-XX:+UnlockExperimentalVMOptions",
49-
"-XX:-UseZGC",
50-
"-version");
45+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder("-XX:-UseSerialGC",
46+
"-XX:-UseParallelGC",
47+
"-XX:-UseG1GC",
48+
"-XX:-UseConcMarkSweepGC",
49+
"-XX:+UnlockExperimentalVMOptions",
50+
"-XX:-UseZGC",
51+
"-version");
5152
OutputAnalyzer output = new OutputAnalyzer(pb.start());
5253
output.shouldMatch("Garbage collector not selected");
5354
output.shouldHaveExitValue(1);

test/hotspot/jtreg/gc/arguments/TestG1ConcMarkStepDurationMillis.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
* @requires vm.gc.G1
3030
* @summary Tests argument processing for double type flag, G1ConcMarkStepDurationMillis
3131
* @library /test/lib
32+
* @library /
3233
* @modules java.base/jdk.internal.misc
3334
* java.management
3435
* @run main gc.arguments.TestG1ConcMarkStepDurationMillis
@@ -79,7 +80,7 @@ private static void runG1ConcMarkStepDurationMillisTest(String expectedValue, in
7980

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

82-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
83+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
8384
OutputAnalyzer output = new OutputAnalyzer(pb.start());
8485

8586
output.shouldHaveExitValue(expectedResult == PASS ? 0 : 1);

test/hotspot/jtreg/gc/arguments/TestG1ConcRefinementThreads.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* @requires vm.gc.G1
3131
* @summary Tests argument processing for G1ConcRefinementThreads
3232
* @library /test/lib
33+
* @library /
3334
* @modules java.base/jdk.internal.misc
3435
* java.management
3536
* @run main gc.arguments.TestG1ConcRefinementThreads
@@ -70,7 +71,7 @@ private static void runG1ConcRefinementThreadsTest(String[] passedOpts,
7071
}
7172
Collections.addAll(vmOpts, "-XX:+UseG1GC", "-XX:+PrintFlagsFinal", "-version");
7273

73-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
74+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(vmOpts.toArray(new String[vmOpts.size()]));
7475
OutputAnalyzer output = new OutputAnalyzer(pb.start());
7576

7677
output.shouldHaveExitValue(0);

test/hotspot/jtreg/gc/arguments/TestG1HeapRegionSize.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
* @modules java.base/jdk.internal.misc
3333
* @modules java.management/sun.management
3434
* @library /test/lib
35+
* @library /
3536
* @run main gc.arguments.TestG1HeapRegionSize
3637
*/
3738

@@ -53,7 +54,7 @@ private static void checkG1HeapRegionSize(String[] flags, int expectedValue, int
5354
flagList.add("-XX:+PrintFlagsFinal");
5455
flagList.add("-version");
5556

56-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(flagList.toArray(new String[0]));
57+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flagList.toArray(new String[0]));
5758
OutputAnalyzer output = new OutputAnalyzer(pb.start());
5859
output.shouldHaveExitValue(exitValue);
5960

test/hotspot/jtreg/gc/arguments/TestG1PercentageOptions.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* @requires vm.gc.G1
3131
* @summary Test argument processing of various percentage options
3232
* @library /test/lib
33+
* @library /
3334
* @modules java.base/jdk.internal.misc
3435
* java.management
3536
* @run driver gc.arguments.TestG1PercentageOptions
@@ -65,7 +66,7 @@ private static final class OptionDescription {
6566

6667
private static void check(String flag, boolean is_valid) throws Exception {
6768
String[] flags = new String[] { "-XX:+UseG1GC", flag, "-version" };
68-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(flags);
69+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flags);
6970
OutputAnalyzer output = new OutputAnalyzer(pb.start());
7071
if (is_valid) {
7172
output.shouldHaveExitValue(0);

test/hotspot/jtreg/gc/arguments/TestHeapFreeRatio.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
* @bug 8025661
3030
* @summary Test parsing of -Xminf and -Xmaxf
3131
* @library /test/lib
32+
* @library /
3233
* @modules java.base/jdk.internal.misc
3334
* java.management
3435
* @run main/othervm gc.arguments.TestHeapFreeRatio
@@ -48,7 +49,7 @@ enum Validation {
4849
}
4950

5051
private static void testMinMaxFreeRatio(String min, String max, Validation type) throws Exception {
51-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
52+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
5253
"-Xminf" + min,
5354
"-Xmaxf" + max,
5455
"-version");

test/hotspot/jtreg/gc/arguments/TestInitialTenuringThreshold.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* @requires vm.gc.Parallel
3131
* @summary Tests argument processing for initial tenuring threshold
3232
* @library /test/lib
33+
* @library /
3334
* @modules java.base/jdk.internal.misc
3435
* java.management
3536
* @run main/othervm gc.arguments.TestInitialTenuringThreshold
@@ -42,7 +43,7 @@
4243
public class TestInitialTenuringThreshold {
4344

4445
public static void runWithThresholds(int initial, int max, boolean shouldfail) throws Exception {
45-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
46+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
4647
"-XX:+UseParallelGC",
4748
"-XX:InitialTenuringThreshold=" + String.valueOf(initial),
4849
"-XX:MaxTenuringThreshold=" + String.valueOf(max),
@@ -59,7 +60,7 @@ public static void runWithThresholds(int initial, int max, boolean shouldfail) t
5960

6061

6162
public static void main(String args[]) throws Exception {
62-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
63+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(
6364
// some value below the default value of InitialTenuringThreshold of 7
6465
"-XX:MaxTenuringThreshold=1",
6566
"-version"

test/hotspot/jtreg/gc/arguments/TestMaxHeapSizeTools.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ private static long align_up(long value, long alignment) {
9898
}
9999

100100
private static void getNewOldSize(String gcflag, long[] values) throws Exception {
101-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(gcflag,
101+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(gcflag,
102102
"-XX:+PrintFlagsFinal", "-version");
103103
OutputAnalyzer output = new OutputAnalyzer(pb.start());
104104
output.shouldHaveExitValue(0);
@@ -179,7 +179,7 @@ public static OutputAnalyzer runWhiteBoxTest(String[] vmargs, String classname,
179179
finalargs.add(classname);
180180
finalargs.addAll(Arrays.asList(arguments));
181181

182-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0]));
182+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs.toArray(new String[0]));
183183
OutputAnalyzer output = new OutputAnalyzer(pb.start());
184184
output.shouldHaveExitValue(0);
185185

@@ -279,7 +279,7 @@ private static void shouldContainOrNot(OutputAnalyzer output, boolean contains,
279279
}
280280

281281
private static void expect(String[] flags, boolean hasWarning, boolean hasError, int errorcode) throws Exception {
282-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(flags);
282+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(flags);
283283
OutputAnalyzer output = new OutputAnalyzer(pb.start());
284284
shouldContainOrNot(output, hasWarning, "Warning");
285285
shouldContainOrNot(output, hasError, "Error");

test/hotspot/jtreg/gc/arguments/TestMaxMinHeapFreeRatioFlags.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public static void positiveTest(int minRatio, boolean useXminf,
100100
Boolean.toString(shrinkHeapInSteps)
101101
);
102102

103-
ProcessBuilder procBuilder = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
103+
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
104104
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
105105
analyzer.shouldHaveExitValue(0);
106106
}
@@ -125,7 +125,7 @@ public static void negativeTest(int minRatio, boolean useXminf,
125125
"--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED",
126126
"-version"
127127
);
128-
ProcessBuilder procBuilder = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
128+
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
129129
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
130130
analyzer.shouldHaveExitValue(1);
131131
analyzer.shouldContain("Error: Could not create the Java Virtual Machine.");

test/hotspot/jtreg/gc/arguments/TestMaxNewSize.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
* processing.
3232
* @requires vm.gc.Serial
3333
* @library /test/lib
34+
* @library /
3435
* @modules java.base/jdk.internal.misc
3536
* java.management
3637
* @run main gc.arguments.TestMaxNewSize -XX:+UseSerialGC
@@ -45,6 +46,7 @@
4546
* processing.
4647
* @requires vm.gc.Parallel
4748
* @library /test/lib
49+
* @library /
4850
* @modules java.base/jdk.internal.misc
4951
* java.management
5052
* @run main gc.arguments.TestMaxNewSize -XX:+UseParallelGC
@@ -59,6 +61,7 @@
5961
* processing.
6062
* @requires vm.gc.G1
6163
* @library /test/lib
64+
* @library /
6265
* @modules java.base/jdk.internal.misc
6366
* java.management
6467
* @run main gc.arguments.TestMaxNewSize -XX:+UseG1GC
@@ -72,6 +75,7 @@
7275
* @comment Graal does not support CMS
7376
* @requires vm.gc.ConcMarkSweep & !vm.graal.enabled
7477
* @library /test/lib
78+
* @library /
7579
* @modules java.base/jdk.internal.misc
7680
* java.management
7781
* @run main gc.arguments.TestMaxNewSize -XX:+UseConcMarkSweepGC
@@ -104,7 +108,7 @@ private static void checkIncompatibleNewSize(String[] flags) throws Exception {
104108
finalargs.addAll(Arrays.asList(flags));
105109
finalargs.add("-version");
106110

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

130-
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(finalargs.toArray(new String[0]));
134+
ProcessBuilder pb = GCArguments.createJavaProcessBuilder(finalargs.toArray(new String[0]));
131135
OutputAnalyzer output = new OutputAnalyzer(pb.start());
132136
output.shouldHaveExitValue(0);
133137
String stdout = output.getStdout();

test/hotspot/jtreg/gc/arguments/TestMinAndInitialSurvivorRatioFlags.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public static void testSurvivorRatio(int survivorRatio,
104104
Boolean.toString(useAdaptiveSizePolicy)
105105
);
106106
vmOptions.removeIf((String p) -> p.isEmpty());
107-
ProcessBuilder procBuilder = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
107+
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
108108
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
109109
analyzer.shouldHaveExitValue(0);
110110
}

test/hotspot/jtreg/gc/arguments/TestNewRatioFlag.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public static void testNewRatio(int ratio, LinkedList<String> options) throws Ex
8484
Integer.toString(ratio)
8585
);
8686

87-
ProcessBuilder procBuilder = ProcessTools.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
87+
ProcessBuilder procBuilder = GCArguments.createJavaProcessBuilder(vmOptions.toArray(new String[vmOptions.size()]));
8888
OutputAnalyzer analyzer = new OutputAnalyzer(procBuilder.start());
8989
analyzer.shouldHaveExitValue(0);
9090
System.out.println(analyzer.getOutput());

0 commit comments

Comments
 (0)