39 public static void main(String[] args) throws Exception {
40 String[] concurrent = {
41 "ShenandoahStoreValEnqueueBarrier",
42 };
43 String[] iu = {
44 "ShenandoahSATBBarrier",
45 };
46
47 shouldFailAll("-XX:ShenandoahGCHeuristics=adaptive", concurrent);
48 shouldFailAll("-XX:ShenandoahGCHeuristics=static", concurrent);
49 shouldFailAll("-XX:ShenandoahGCHeuristics=compact", concurrent);
50 shouldFailAll("-XX:ShenandoahGCHeuristics=aggressive", concurrent);
51 shouldFailAll("-XX:ShenandoahGCMode=iu", iu);
52 shouldPassAll("-XX:ShenandoahGCMode=passive", concurrent);
53 shouldPassAll("-XX:ShenandoahGCMode=passive", iu);
54 }
55
56 private static void shouldFailAll(String h, String[] barriers) throws Exception {
57 for (String b : barriers) {
58 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
59 "-XX:+UnlockDiagnosticVMOptions",
60 "-XX:+UnlockExperimentalVMOptions",
61 "-XX:+UseShenandoahGC",
62 h,
63 "-XX:+" + b,
64 "-version"
65 );
66 OutputAnalyzer output = new OutputAnalyzer(pb.start());
67 output.shouldNotHaveExitValue(0);
68 output.shouldContain("GC mode needs ");
69 output.shouldContain("to work correctly");
70 }
71 }
72
73 private static void shouldPassAll(String h, String[] barriers) throws Exception {
74 for (String b : barriers) {
75 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
76 "-XX:+UnlockDiagnosticVMOptions",
77 "-XX:+UnlockExperimentalVMOptions",
78 "-XX:+UseShenandoahGC",
79 h,
80 "-XX:+" + b,
81 "-version"
82 );
83 OutputAnalyzer output = new OutputAnalyzer(pb.start());
84 output.shouldHaveExitValue(0);
85 }
86 }
87
88 }
|
39 public static void main(String[] args) throws Exception {
40 String[] concurrent = {
41 "ShenandoahStoreValEnqueueBarrier",
42 };
43 String[] iu = {
44 "ShenandoahSATBBarrier",
45 };
46
47 shouldFailAll("-XX:ShenandoahGCHeuristics=adaptive", concurrent);
48 shouldFailAll("-XX:ShenandoahGCHeuristics=static", concurrent);
49 shouldFailAll("-XX:ShenandoahGCHeuristics=compact", concurrent);
50 shouldFailAll("-XX:ShenandoahGCHeuristics=aggressive", concurrent);
51 shouldFailAll("-XX:ShenandoahGCMode=iu", iu);
52 shouldPassAll("-XX:ShenandoahGCMode=passive", concurrent);
53 shouldPassAll("-XX:ShenandoahGCMode=passive", iu);
54 }
55
56 private static void shouldFailAll(String h, String[] barriers) throws Exception {
57 for (String b : barriers) {
58 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
59 "-Xmx128m",
60 "-XX:+UnlockDiagnosticVMOptions",
61 "-XX:+UnlockExperimentalVMOptions",
62 "-XX:+UseShenandoahGC",
63 h,
64 "-XX:+" + b,
65 "-version"
66 );
67 OutputAnalyzer output = new OutputAnalyzer(pb.start());
68 output.shouldNotHaveExitValue(0);
69 output.shouldContain("GC mode needs ");
70 output.shouldContain("to work correctly");
71 }
72 }
73
74 private static void shouldPassAll(String h, String[] barriers) throws Exception {
75 for (String b : barriers) {
76 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
77 "-Xmx128m",
78 "-XX:+UnlockDiagnosticVMOptions",
79 "-XX:+UnlockExperimentalVMOptions",
80 "-XX:+UseShenandoahGC",
81 h,
82 "-XX:+" + b,
83 "-version"
84 );
85 OutputAnalyzer output = new OutputAnalyzer(pb.start());
86 output.shouldHaveExitValue(0);
87 }
88 }
89
90 }
|