27 * @bug 8031320
28 * @summary Verify that RTMLockingCalculationDelay affect when
29 * abort ratio calculation is started.
30 * @library /test/lib /
31 * @modules java.base/jdk.internal.misc
32 * java.management
33 * @build sun.hotspot.WhiteBox
34 * @run driver ClassFileInstaller sun.hotspot.WhiteBox
35 * sun.hotspot.WhiteBox$WhiteBoxPermission
36 * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
37 * -XX:+WhiteBoxAPI
38 * compiler.rtm.locking.TestRTMLockingCalculationDelay
39 */
40
41 package compiler.rtm.locking;
42
43 import compiler.testlibrary.rtm.AbortProvoker;
44 import compiler.testlibrary.rtm.AbortType;
45 import compiler.testlibrary.rtm.RTMTestBase;
46 import compiler.testlibrary.rtm.predicate.SupportedCPU;
47 import compiler.testlibrary.rtm.predicate.SupportedVM;
48 import jdk.test.lib.Asserts;
49 import jdk.test.lib.process.OutputAnalyzer;
50 import jdk.test.lib.cli.CommandLineOptionTest;
51 import jdk.test.lib.cli.predicate.AndPredicate;
52
53 /**
54 * Test verifies that abort ratio calculation could be delayed using
55 * RTMLockingCalculationDelay option.
56 */
57 public class TestRTMLockingCalculationDelay extends CommandLineOptionTest {
58 private static final boolean INFLATE_MONITOR = true;
59
60 private TestRTMLockingCalculationDelay() {
61 super(new AndPredicate(new SupportedCPU(), new SupportedVM()));
62 }
63
64 @Override
65 protected void runTestCases() throws Throwable {
66 // verify that calculation will be started immediately
67 verifyLockingCalculationDelay(0, 0, true);
68
69 // verify that calculation will not be started during
70 // first 10 minutes, while test will be started immediately
71 verifyLockingCalculationDelay(600000, 0, false);
72
73 // verify that calculation will be started after a second
74 verifyLockingCalculationDelay(1000, 1000, true);
75 }
76
77 private void verifyLockingCalculationDelay(long delay, long testDelay,
78 boolean deoptExpected) throws Throwable {
79 AbortProvoker provoker = AbortType.XABORT.provoker();
80 String logFileName = String.format("rtm_delay_%d_%d.xml", delay,
81 testDelay);
|
27 * @bug 8031320
28 * @summary Verify that RTMLockingCalculationDelay affect when
29 * abort ratio calculation is started.
30 * @library /test/lib /
31 * @modules java.base/jdk.internal.misc
32 * java.management
33 * @build sun.hotspot.WhiteBox
34 * @run driver ClassFileInstaller sun.hotspot.WhiteBox
35 * sun.hotspot.WhiteBox$WhiteBoxPermission
36 * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
37 * -XX:+WhiteBoxAPI
38 * compiler.rtm.locking.TestRTMLockingCalculationDelay
39 */
40
41 package compiler.rtm.locking;
42
43 import compiler.testlibrary.rtm.AbortProvoker;
44 import compiler.testlibrary.rtm.AbortType;
45 import compiler.testlibrary.rtm.RTMTestBase;
46 import compiler.testlibrary.rtm.predicate.SupportedCPU;
47 import compiler.testlibrary.rtm.predicate.SupportedOS;
48 import compiler.testlibrary.rtm.predicate.SupportedVM;
49 import jdk.test.lib.Asserts;
50 import jdk.test.lib.process.OutputAnalyzer;
51 import jdk.test.lib.cli.CommandLineOptionTest;
52 import jdk.test.lib.cli.predicate.AndPredicate;
53
54 /**
55 * Test verifies that abort ratio calculation could be delayed using
56 * RTMLockingCalculationDelay option.
57 */
58 public class TestRTMLockingCalculationDelay extends CommandLineOptionTest {
59 private static final boolean INFLATE_MONITOR = true;
60
61 private TestRTMLockingCalculationDelay() {
62 super(new AndPredicate(new SupportedCPU(), new SupportedOS(), new SupportedVM()));
63 }
64
65 @Override
66 protected void runTestCases() throws Throwable {
67 // verify that calculation will be started immediately
68 verifyLockingCalculationDelay(0, 0, true);
69
70 // verify that calculation will not be started during
71 // first 10 minutes, while test will be started immediately
72 verifyLockingCalculationDelay(600000, 0, false);
73
74 // verify that calculation will be started after a second
75 verifyLockingCalculationDelay(1000, 1000, true);
76 }
77
78 private void verifyLockingCalculationDelay(long delay, long testDelay,
79 boolean deoptExpected) throws Throwable {
80 AbortProvoker provoker = AbortType.XABORT.provoker();
81 String logFileName = String.format("rtm_delay_%d_%d.xml", delay,
82 testDelay);
|