20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 /* @test
26 * @summary Test that SATB barrier may be enabled for all modes
27 * @requires vm.gc.Shenandoah
28 * @library /test/lib
29 * @run driver TestWrongBarrierEnable
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 TestWrongBarrierEnable {
38
39 public static void main(String[] args) throws Exception {
40 String[] concurrent = {
41 "ShenandoahSATBBarrier",
42 };
43 shouldPassAll("-XX:ShenandoahGCHeuristics=adaptive", concurrent);
44 shouldPassAll("-XX:ShenandoahGCHeuristics=static", concurrent);
45 shouldPassAll("-XX:ShenandoahGCHeuristics=compact", concurrent);
46 shouldPassAll("-XX:ShenandoahGCHeuristics=aggressive", concurrent);
47 shouldPassAll("-XX:ShenandoahGCMode=passive", concurrent);
48 }
49
50 private static void shouldFailAll(String h, String[] barriers) throws Exception {
51 for (String b : barriers) {
52 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
53 "-Xmx128m",
54 "-XX:+UnlockDiagnosticVMOptions",
55 "-XX:+UnlockExperimentalVMOptions",
56 "-XX:+UseShenandoahGC",
57 h,
58 "-XX:+" + b,
59 "-version"
60 );
61 output.shouldNotHaveExitValue(0);
62 output.shouldContain("GC mode needs ");
63 output.shouldContain("to work correctly");
64 }
65 }
66
67 private static void shouldPassAll(String h, String[] barriers) throws Exception {
68 for (String b : barriers) {
69 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
70 "-Xmx128m",
71 "-XX:+UnlockDiagnosticVMOptions",
72 "-XX:+UnlockExperimentalVMOptions",
73 "-XX:+UseShenandoahGC",
74 h,
75 "-XX:+" + b,
76 "-version"
77 );
78 output.shouldHaveExitValue(0);
79 }
80 }
81
82 }
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 /* @test
26 * @summary Test that SATB barrier may be enabled for all modes
27 * @requires vm.gc.Shenandoah
28 * @library /test/lib
29 * @run driver TestWrongBarrierEnable
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 TestWrongBarrierEnable {
38
39 public static void main(String[] args) throws Exception {
40 String[] concurrent = { "ShenandoahSATBBarrier" };
41 String[] generational = { "ShenandoahCardBarrier" };
42 String[] all = { "ShenandoahSATBBarrier", "ShenandoahCardBarrier" };
43
44 shouldPassAll("-XX:ShenandoahGCHeuristics=adaptive", concurrent);
45 shouldPassAll("-XX:ShenandoahGCHeuristics=static", concurrent);
46 shouldPassAll("-XX:ShenandoahGCHeuristics=compact", concurrent);
47 shouldPassAll("-XX:ShenandoahGCHeuristics=aggressive", concurrent);
48 shouldPassAll("-XX:ShenandoahGCMode=passive", concurrent);
49 shouldPassAll("-XX:ShenandoahGCMode=generational", all);
50 shouldFailAll("-XX:ShenandoahGCMode=satb", generational);
51 shouldFailAll("-XX:ShenandoahGCMode=passive", generational);
52 }
53
54 private static void shouldFailAll(String h, String[] barriers) throws Exception {
55 for (String b : barriers) {
56 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
57 "-Xmx128m",
58 "-XX:+UnlockDiagnosticVMOptions",
59 "-XX:+UnlockExperimentalVMOptions",
60 "-XX:+UseShenandoahGC",
61 h,
62 "-XX:+" + b,
63 "-version"
64 );
65 output.shouldNotHaveExitValue(0);
66 output.shouldContain("GC mode needs ");
67 output.shouldContain("to work correctly");
68 }
69 }
70
71 private static void shouldPassAll(String h, String[] barriers) throws Exception {
72 for (String b : barriers) {
73 OutputAnalyzer output = ProcessTools.executeLimitedTestJava(
74 "-Xmx128m",
75 "-XX:+UnlockDiagnosticVMOptions",
76 "-XX:+UnlockExperimentalVMOptions",
77 "-XX:+UseShenandoahGC",
78 h,
79 "-XX:+" + b,
80 "-version"
81 );
82 output.shouldHaveExitValue(0);
83 }
84 }
85 }
|