23 */
24
25 /*
26 * @test TestLoopMiningArguments
27 * @summary Test that loop mining arguments are sane
28 * @requires vm.gc.Shenandoah & !vm.graal.enabled
29 * @requires vm.flavor == "server"
30 * @library /test/lib
31 * @run driver TestLoopMiningArguments
32 */
33
34 import java.util.*;
35
36 import jdk.test.lib.Asserts;
37 import jdk.test.lib.process.ProcessTools;
38 import jdk.test.lib.process.OutputAnalyzer;
39
40 public class TestLoopMiningArguments {
41
42 public static void testWith(String msg, boolean cls, int iters, String... args) throws Exception {
43 String[] cmds = Arrays.copyOf(args, args.length + 2);
44 cmds[args.length] = "-XX:+PrintFlagsFinal";
45 cmds[args.length + 1] = "-version";
46 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds);
47 OutputAnalyzer output = new OutputAnalyzer(pb.start());
48 output.shouldHaveExitValue(0);
49 output.shouldContain("UseCountedLoopSafepoints");
50 output.shouldContain("LoopStripMiningIter");
51
52 Asserts.assertEQ(output.firstMatch("(.+?) UseCountedLoopSafepoints.+?= (.+?) (.+?)", 2), Boolean.toString(cls), msg + ", but got wrong CLS");
53 Asserts.assertEQ(output.firstMatch("(.+?) LoopStripMiningIter.+?= (.+?) (.+?)", 2), String.valueOf(iters), msg + ", but got wrong LSM");
54 }
55
56 public static void main(String[] args) throws Exception {
57 testWith("Shenandoah should have CLS and LSM enabled",
58 true, 1000,
59 "-XX:+UnlockExperimentalVMOptions",
60 "-XX:+UseShenandoahGC"
61 );
62
63 testWith("Shenandoah with +CLS should set LSM = 1",
64 true, 1,
65 "-XX:+UnlockExperimentalVMOptions",
|
23 */
24
25 /*
26 * @test TestLoopMiningArguments
27 * @summary Test that loop mining arguments are sane
28 * @requires vm.gc.Shenandoah & !vm.graal.enabled
29 * @requires vm.flavor == "server"
30 * @library /test/lib
31 * @run driver TestLoopMiningArguments
32 */
33
34 import java.util.*;
35
36 import jdk.test.lib.Asserts;
37 import jdk.test.lib.process.ProcessTools;
38 import jdk.test.lib.process.OutputAnalyzer;
39
40 public class TestLoopMiningArguments {
41
42 public static void testWith(String msg, boolean cls, int iters, String... args) throws Exception {
43 String[] cmds = Arrays.copyOf(args, args.length + 3);
44 cmds[args.length] = "-Xmx128m";
45 cmds[args.length + 1] = "-XX:+PrintFlagsFinal";
46 cmds[args.length + 2] = "-version";
47 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(cmds);
48 OutputAnalyzer output = new OutputAnalyzer(pb.start());
49 output.shouldHaveExitValue(0);
50 output.shouldContain("UseCountedLoopSafepoints");
51 output.shouldContain("LoopStripMiningIter");
52
53 Asserts.assertEQ(output.firstMatch("(.+?) UseCountedLoopSafepoints.+?= (.+?) (.+?)", 2), Boolean.toString(cls), msg + ", but got wrong CLS");
54 Asserts.assertEQ(output.firstMatch("(.+?) LoopStripMiningIter.+?= (.+?) (.+?)", 2), String.valueOf(iters), msg + ", but got wrong LSM");
55 }
56
57 public static void main(String[] args) throws Exception {
58 testWith("Shenandoah should have CLS and LSM enabled",
59 true, 1000,
60 "-XX:+UnlockExperimentalVMOptions",
61 "-XX:+UseShenandoahGC"
62 );
63
64 testWith("Shenandoah with +CLS should set LSM = 1",
65 true, 1,
66 "-XX:+UnlockExperimentalVMOptions",
|