29 * @library /test/lib
30 * @modules java.base/jdk.internal.misc
31 * java.management
32 * @run driver TestArgumentRanges
33 */
34
35 import jdk.test.lib.process.ProcessTools;
36 import jdk.test.lib.process.OutputAnalyzer;
37
38 public class TestArgumentRanges {
39 public static void main(String[] args) throws Exception {
40 testRange("ShenandoahGarbageThreshold", 0, 100);
41 testRange("ShenandoahMinFreeThreshold", 0, 100);
42 testRange("ShenandoahAllocationThreshold", 0, 100);
43 testHeuristics();
44 }
45
46 private static void testHeuristics() throws Exception {
47
48 {
49 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
50 "-XX:+UnlockExperimentalVMOptions",
51 "-XX:+UseShenandoahGC",
52 "-XX:ShenandoahGCHeuristics=aggressive",
53 "-version");
54 OutputAnalyzer output = new OutputAnalyzer(pb.start());
55 output.shouldHaveExitValue(0);
56 }
57 {
58 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
59 "-XX:+UnlockExperimentalVMOptions",
60 "-XX:+UseShenandoahGC",
61 "-XX:ShenandoahGCHeuristics=static",
62 "-version");
63 OutputAnalyzer output = new OutputAnalyzer(pb.start());
64 output.shouldHaveExitValue(0);
65 }
66 {
67 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
68 "-XX:+UnlockExperimentalVMOptions",
69 "-XX:+UseShenandoahGC",
70 "-XX:ShenandoahGCHeuristics=fluff",
71 "-version");
72 OutputAnalyzer output = new OutputAnalyzer(pb.start());
73 output.shouldMatch("Unknown -XX:ShenandoahGCHeuristics option");
74 output.shouldHaveExitValue(1);
75 }
76 }
77
78 private static void testRange(String option, int min, int max) throws Exception {
79 {
80 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
81 "-XX:+UnlockExperimentalVMOptions",
82 "-XX:+UseShenandoahGC",
83 "-XX:" + option + "=" + (max + 1),
84 "-version");
85 OutputAnalyzer output = new OutputAnalyzer(pb.start());
86 output.shouldHaveExitValue(1);
87 }
88 {
89 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
90 "-XX:+UnlockExperimentalVMOptions",
91 "-XX:+UseShenandoahGC",
92 "-XX:" + option + "=" + max,
93 "-version");
94 OutputAnalyzer output = new OutputAnalyzer(pb.start());
95 output.shouldHaveExitValue(0);
96 }
97 {
98 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
99 "-XX:+UnlockExperimentalVMOptions",
100 "-XX:+UseShenandoahGC",
101 "-XX:" + option + "=" + (min - 1),
102 "-version");
103 OutputAnalyzer output = new OutputAnalyzer(pb.start());
104 output.shouldHaveExitValue(1);
105 }
106 {
107 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UnlockDiagnosticVMOptions",
108 "-XX:+UnlockExperimentalVMOptions",
109 "-XX:+UseShenandoahGC",
110 "-XX:" + option + "=" + min,
111 "-version");
112 OutputAnalyzer output = new OutputAnalyzer(pb.start());
113 output.shouldHaveExitValue(0);
114 }
115 }
116 }
|
29 * @library /test/lib
30 * @modules java.base/jdk.internal.misc
31 * java.management
32 * @run driver TestArgumentRanges
33 */
34
35 import jdk.test.lib.process.ProcessTools;
36 import jdk.test.lib.process.OutputAnalyzer;
37
38 public class TestArgumentRanges {
39 public static void main(String[] args) throws Exception {
40 testRange("ShenandoahGarbageThreshold", 0, 100);
41 testRange("ShenandoahMinFreeThreshold", 0, 100);
42 testRange("ShenandoahAllocationThreshold", 0, 100);
43 testHeuristics();
44 }
45
46 private static void testHeuristics() throws Exception {
47
48 {
49 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
50 "-Xmx128m",
51 "-XX:+UnlockDiagnosticVMOptions",
52 "-XX:+UnlockExperimentalVMOptions",
53 "-XX:+UseShenandoahGC",
54 "-XX:ShenandoahGCHeuristics=aggressive",
55 "-version");
56 OutputAnalyzer output = new OutputAnalyzer(pb.start());
57 output.shouldHaveExitValue(0);
58 }
59 {
60 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
61 "-Xmx128m",
62 "-XX:+UnlockDiagnosticVMOptions",
63 "-XX:+UnlockExperimentalVMOptions",
64 "-XX:+UseShenandoahGC",
65 "-XX:ShenandoahGCHeuristics=static",
66 "-version");
67 OutputAnalyzer output = new OutputAnalyzer(pb.start());
68 output.shouldHaveExitValue(0);
69 }
70 {
71 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
72 "-Xmx128m",
73 "-XX:+UnlockDiagnosticVMOptions",
74 "-XX:+UnlockExperimentalVMOptions",
75 "-XX:+UseShenandoahGC",
76 "-XX:ShenandoahGCHeuristics=fluff",
77 "-version");
78 OutputAnalyzer output = new OutputAnalyzer(pb.start());
79 output.shouldMatch("Unknown -XX:ShenandoahGCHeuristics option");
80 output.shouldHaveExitValue(1);
81 }
82 }
83
84 private static void testRange(String option, int min, int max) throws Exception {
85 {
86 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
87 "-Xmx128m",
88 "-XX:+UnlockDiagnosticVMOptions",
89 "-XX:+UnlockExperimentalVMOptions",
90 "-XX:+UseShenandoahGC",
91 "-XX:" + option + "=" + (max + 1),
92 "-version");
93 OutputAnalyzer output = new OutputAnalyzer(pb.start());
94 output.shouldHaveExitValue(1);
95 }
96 {
97 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
98 "-Xmx128m",
99 "-XX:+UnlockDiagnosticVMOptions",
100 "-XX:+UnlockExperimentalVMOptions",
101 "-XX:+UseShenandoahGC",
102 "-XX:" + option + "=" + max,
103 "-version");
104 OutputAnalyzer output = new OutputAnalyzer(pb.start());
105 output.shouldHaveExitValue(0);
106 }
107 {
108 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
109 "-Xmx128m",
110 "-XX:+UnlockDiagnosticVMOptions",
111 "-XX:+UnlockExperimentalVMOptions",
112 "-XX:+UseShenandoahGC",
113 "-XX:" + option + "=" + (min - 1),
114 "-version");
115 OutputAnalyzer output = new OutputAnalyzer(pb.start());
116 output.shouldHaveExitValue(1);
117 }
118 {
119 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
120 "-Xmx128m",
121 "-XX:+UnlockDiagnosticVMOptions",
122 "-XX:+UnlockExperimentalVMOptions",
123 "-XX:+UseShenandoahGC",
124 "-XX:" + option + "=" + min,
125 "-version");
126 OutputAnalyzer output = new OutputAnalyzer(pb.start());
127 output.shouldHaveExitValue(0);
128 }
129 }
130 }
|