28 * @library /test/lib
29 * @run driver TestWrongBarrierDisable
30 */
31
32 import java.util.*;
33
34 import jdk.test.lib.process.ProcessTools;
35 import jdk.test.lib.process.OutputAnalyzer;
36
37 public class TestWrongBarrierDisable {
38
39 public static void main(String[] args) throws Exception {
40 String[] concurrent = {
41 "ShenandoahLoadRefBarrier",
42 "ShenandoahSATBBarrier",
43 "ShenandoahCASBarrier",
44 "ShenandoahCloneBarrier",
45 "ShenandoahStackWatermarkBarrier",
46 };
47
48 shouldFailAll("-XX:ShenandoahGCHeuristics=adaptive", concurrent);
49 shouldFailAll("-XX:ShenandoahGCHeuristics=static", concurrent);
50 shouldFailAll("-XX:ShenandoahGCHeuristics=compact", concurrent);
51 shouldFailAll("-XX:ShenandoahGCHeuristics=aggressive", concurrent);
52 shouldPassAll("-XX:ShenandoahGCMode=passive", concurrent);
53 }
54
55 private static void shouldFailAll(String h, String[] barriers) throws Exception {
56 for (String b : barriers) {
57 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
58 "-Xmx128m",
59 "-XX:+UnlockDiagnosticVMOptions",
60 "-XX:+UnlockExperimentalVMOptions",
61 "-XX:+UseShenandoahGC",
62 h,
63 "-XX:-" + b,
64 "-version"
65 );
66 output.shouldNotHaveExitValue(0);
67 output.shouldContain("GC mode needs ");
68 output.shouldContain("to work correctly");
69 }
70 }
71
72 private static void shouldPassAll(String h, String[] barriers) throws Exception {
|
28 * @library /test/lib
29 * @run driver TestWrongBarrierDisable
30 */
31
32 import java.util.*;
33
34 import jdk.test.lib.process.ProcessTools;
35 import jdk.test.lib.process.OutputAnalyzer;
36
37 public class TestWrongBarrierDisable {
38
39 public static void main(String[] args) throws Exception {
40 String[] concurrent = {
41 "ShenandoahLoadRefBarrier",
42 "ShenandoahSATBBarrier",
43 "ShenandoahCASBarrier",
44 "ShenandoahCloneBarrier",
45 "ShenandoahStackWatermarkBarrier",
46 };
47
48 String[] generational = {
49 "ShenandoahCardBarrier"
50 };
51
52 shouldFailAll("-XX:ShenandoahGCHeuristics=adaptive", concurrent);
53 shouldFailAll("-XX:ShenandoahGCHeuristics=static", concurrent);
54 shouldFailAll("-XX:ShenandoahGCHeuristics=compact", concurrent);
55 shouldFailAll("-XX:ShenandoahGCHeuristics=aggressive", concurrent);
56 shouldPassAll("-XX:ShenandoahGCMode=passive", concurrent);
57 shouldPassAll("-XX:ShenandoahGCMode=passive", generational);
58 shouldPassAll("-XX:ShenandoahGCMode=satb", generational);
59 shouldFailAll("-XX:ShenandoahGCMode=generational", generational);
60 }
61
62 private static void shouldFailAll(String h, String[] barriers) throws Exception {
63 for (String b : barriers) {
64 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
65 "-Xmx128m",
66 "-XX:+UnlockDiagnosticVMOptions",
67 "-XX:+UnlockExperimentalVMOptions",
68 "-XX:+UseShenandoahGC",
69 h,
70 "-XX:-" + b,
71 "-version"
72 );
73 output.shouldNotHaveExitValue(0);
74 output.shouldContain("GC mode needs ");
75 output.shouldContain("to work correctly");
76 }
77 }
78
79 private static void shouldPassAll(String h, String[] barriers) throws Exception {
|