27 * @summary Test that Shenandoah modes are unlocked properly
28 * @requires vm.gc.Shenandoah
29 * @library /test/lib
30 * @modules java.base/jdk.internal.misc
31 * java.management
32 * @run driver TestModeUnlock
33 */
34
35 import jdk.test.lib.process.ProcessTools;
36 import jdk.test.lib.process.OutputAnalyzer;
37
38 public class TestModeUnlock {
39
40 enum Mode {
41 PRODUCT,
42 DIAGNOSTIC,
43 EXPERIMENTAL,
44 }
45
46 public static void main(String[] args) throws Exception {
47 testWith("-XX:ShenandoahGCMode=satb", Mode.PRODUCT);
48 testWith("-XX:ShenandoahGCMode=iu", Mode.EXPERIMENTAL);
49 testWith("-XX:ShenandoahGCMode=passive", Mode.DIAGNOSTIC);
50 }
51
52 private static void testWith(String h, Mode mode) throws Exception {
53 {
54 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
55 "-Xmx128m",
56 "-XX:-UnlockDiagnosticVMOptions",
57 "-XX:-UnlockExperimentalVMOptions",
58 "-XX:+UseShenandoahGC",
59 h,
60 "-version"
61 );
62 switch (mode) {
63 case PRODUCT:
64 output.shouldHaveExitValue(0);
65 break;
66 case DIAGNOSTIC:
67 case EXPERIMENTAL:
68 output.shouldNotHaveExitValue(0);
69 break;
|
27 * @summary Test that Shenandoah modes are unlocked properly
28 * @requires vm.gc.Shenandoah
29 * @library /test/lib
30 * @modules java.base/jdk.internal.misc
31 * java.management
32 * @run driver TestModeUnlock
33 */
34
35 import jdk.test.lib.process.ProcessTools;
36 import jdk.test.lib.process.OutputAnalyzer;
37
38 public class TestModeUnlock {
39
40 enum Mode {
41 PRODUCT,
42 DIAGNOSTIC,
43 EXPERIMENTAL,
44 }
45
46 public static void main(String[] args) throws Exception {
47 testWith("-XX:ShenandoahGCMode=satb", Mode.PRODUCT);
48 testWith("-XX:ShenandoahGCMode=passive", Mode.DIAGNOSTIC);
49 testWith("-XX:ShenandoahGCMode=generational", Mode.EXPERIMENTAL);
50 }
51
52 private static void testWith(String h, Mode mode) throws Exception {
53 {
54 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
55 "-Xmx128m",
56 "-XX:-UnlockDiagnosticVMOptions",
57 "-XX:-UnlockExperimentalVMOptions",
58 "-XX:+UseShenandoahGC",
59 h,
60 "-version"
61 );
62 switch (mode) {
63 case PRODUCT:
64 output.shouldHaveExitValue(0);
65 break;
66 case DIAGNOSTIC:
67 case EXPERIMENTAL:
68 output.shouldNotHaveExitValue(0);
69 break;
|