12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 8031320
27 * @summary Verify UseRTMLocking option processing on CPU with rtm support and
28 * on VM with rtm-locking support.
29 * @library /test/lib /
30 * @modules java.base/jdk.internal.misc
31 * java.management
32 *
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.cli.TestUseRTMLockingOptionOnSupportedConfig
39 */
40
41 package compiler.rtm.cli;
42
43 import compiler.testlibrary.rtm.predicate.SupportedCPU;
44 import compiler.testlibrary.rtm.predicate.SupportedOS;
45 import compiler.testlibrary.rtm.predicate.SupportedVM;
46 import jdk.test.lib.process.ExitCode;
47 import jdk.test.lib.cli.CommandLineOptionTest;
48 import jdk.test.lib.cli.predicate.AndPredicate;
49
50 public class TestUseRTMLockingOptionOnSupportedConfig
51 extends CommandLineOptionTest {
52 private static final String DEFAULT_VALUE = "false";
53
54 private TestUseRTMLockingOptionOnSupportedConfig() {
55 super(new AndPredicate(new SupportedCPU(), new SupportedOS(), new SupportedVM()));
56 }
57
58 @Override
59 public void runTestCases() throws Throwable {
60 String unrecongnizedOption
61 = CommandLineOptionTest.getUnrecognizedOptionErrorMessage(
62 "UseRTMLocking");
63 String shouldPassMessage = "VM option 'UseRTMLocking' is experimental"
64 + "%nJVM startup should pass with "
65 + "-XX:+UnlockExperimentalVMOptions flag";
66 // verify that there are no warning or error in VM output
67 CommandLineOptionTest.verifySameJVMStartup(null,
68 new String[]{
69 RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR,
70 unrecongnizedOption
71 }, shouldPassMessage, "There should not be any warning when use"
72 + "with -XX:+UnlockExperimentalVMOptions", ExitCode.OK,
73 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS,
74 "-XX:+UseRTMLocking"
75 );
76
77 CommandLineOptionTest.verifySameJVMStartup(null,
78 new String[]{
87 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
88 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE,
89 String.format("Default value of option 'UseRTMLocking' should "
90 + "be '%s'", DEFAULT_VALUE),
91 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS);
92 // verify that we can change UseRTMLocking value
93 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
94 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE,
95 String.format("Default value of option 'UseRTMLocking' should "
96 + "be '%s'", DEFAULT_VALUE),
97 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS,
98 "-XX:-UseRTMLocking");
99 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
100 "true", "Value of 'UseRTMLocking' should be set "
101 + "to 'true' if -XX:+UseRTMLocking flag set",
102 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS,
103 "-XX:+UseRTMLocking");
104 }
105
106 public static void main(String args[]) throws Throwable {
107 new TestUseRTMLockingOptionOnSupportedConfig().test();
108 }
109 }
|
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 8031320
27 * @summary Verify UseRTMLocking option processing on CPU with rtm support and
28 * on VM with rtm-locking support.
29 * @library /test/lib /
30 * @modules java.base/jdk.internal.misc
31 * java.management
32 * @requires vm.flavor == "server" & !vm.emulatedClient & vm.rtm.cpu & vm.rtm.os
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.cli.TestUseRTMLockingOptionOnSupportedConfig
39 */
40
41 package compiler.rtm.cli;
42
43 import jdk.test.lib.process.ExitCode;
44 import jdk.test.lib.cli.CommandLineOptionTest;
45
46 public class TestUseRTMLockingOptionOnSupportedConfig {
47 private static final String DEFAULT_VALUE = "false";
48
49 public void runTestCases() throws Throwable {
50 String unrecongnizedOption
51 = CommandLineOptionTest.getUnrecognizedOptionErrorMessage(
52 "UseRTMLocking");
53 String shouldPassMessage = "VM option 'UseRTMLocking' is experimental"
54 + "%nJVM startup should pass with "
55 + "-XX:+UnlockExperimentalVMOptions flag";
56 // verify that there are no warning or error in VM output
57 CommandLineOptionTest.verifySameJVMStartup(null,
58 new String[]{
59 RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR,
60 unrecongnizedOption
61 }, shouldPassMessage, "There should not be any warning when use"
62 + "with -XX:+UnlockExperimentalVMOptions", ExitCode.OK,
63 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS,
64 "-XX:+UseRTMLocking"
65 );
66
67 CommandLineOptionTest.verifySameJVMStartup(null,
68 new String[]{
77 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
78 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE,
79 String.format("Default value of option 'UseRTMLocking' should "
80 + "be '%s'", DEFAULT_VALUE),
81 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS);
82 // verify that we can change UseRTMLocking value
83 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
84 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE,
85 String.format("Default value of option 'UseRTMLocking' should "
86 + "be '%s'", DEFAULT_VALUE),
87 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS,
88 "-XX:-UseRTMLocking");
89 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
90 "true", "Value of 'UseRTMLocking' should be set "
91 + "to 'true' if -XX:+UseRTMLocking flag set",
92 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS,
93 "-XX:+UseRTMLocking");
94 }
95
96 public static void main(String args[]) throws Throwable {
97 new TestUseRTMLockingOptionOnSupportedConfig().runTestCases();
98 }
99 }
|