32 * java.management
33 * @run driver TestHeuristicsUnlock
34 */
35
36 import jdk.test.lib.process.ProcessTools;
37 import jdk.test.lib.process.OutputAnalyzer;
38
39 public class TestHeuristicsUnlock {
40
41 enum Mode {
42 PRODUCT,
43 DIAGNOSTIC,
44 EXPERIMENTAL,
45 }
46
47 public static void main(String[] args) throws Exception {
48 testWith("-XX:ShenandoahGCHeuristics=adaptive", Mode.PRODUCT);
49 testWith("-XX:ShenandoahGCHeuristics=static", Mode.PRODUCT);
50 testWith("-XX:ShenandoahGCHeuristics=compact", Mode.PRODUCT);
51
52 testWith("-XX:ShenandoahGCHeuristics=aggressive", Mode.DIAGNOSTIC);
53 testWith("-XX:ShenandoahGCHeuristics=passive", Mode.DIAGNOSTIC);
54 }
55
56 private static void testWith(String h, Mode mode) throws Exception {
57 if (false) { // When ShenandoahGC is experimental flag, this makes no sense to test
58 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
59 "-XX:-UnlockDiagnosticVMOptions",
60 "-XX:-UnlockExperimentalVMOptions",
61 "-XX:+UseShenandoahGC",
62 h,
63 "-version"
64 );
65 OutputAnalyzer output = new OutputAnalyzer(pb.start());
66 switch (mode) {
67 case PRODUCT:
68 output.shouldHaveExitValue(0);
69 break;
70 case DIAGNOSTIC:
71 case EXPERIMENTAL:
|
32 * java.management
33 * @run driver TestHeuristicsUnlock
34 */
35
36 import jdk.test.lib.process.ProcessTools;
37 import jdk.test.lib.process.OutputAnalyzer;
38
39 public class TestHeuristicsUnlock {
40
41 enum Mode {
42 PRODUCT,
43 DIAGNOSTIC,
44 EXPERIMENTAL,
45 }
46
47 public static void main(String[] args) throws Exception {
48 testWith("-XX:ShenandoahGCHeuristics=adaptive", Mode.PRODUCT);
49 testWith("-XX:ShenandoahGCHeuristics=static", Mode.PRODUCT);
50 testWith("-XX:ShenandoahGCHeuristics=compact", Mode.PRODUCT);
51
52 testWith("-XX:ShenandoahGCMode=iu", Mode.PRODUCT);
53
54 testWith("-XX:ShenandoahGCHeuristics=aggressive", Mode.DIAGNOSTIC);
55 testWith("-XX:ShenandoahGCHeuristics=passive", Mode.DIAGNOSTIC);
56 }
57
58 private static void testWith(String h, Mode mode) throws Exception {
59 if (false) { // When ShenandoahGC is experimental flag, this makes no sense to test
60 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
61 "-XX:-UnlockDiagnosticVMOptions",
62 "-XX:-UnlockExperimentalVMOptions",
63 "-XX:+UseShenandoahGC",
64 h,
65 "-version"
66 );
67 OutputAnalyzer output = new OutputAnalyzer(pb.start());
68 switch (mode) {
69 case PRODUCT:
70 output.shouldHaveExitValue(0);
71 break;
72 case DIAGNOSTIC:
73 case EXPERIMENTAL:
|