37 38 import com.oracle.java.testlibrary.ExitCode; 39 import com.oracle.java.testlibrary.cli.*; 40 import com.oracle.java.testlibrary.cli.predicate.AndPredicate; 41 import rtm.predicate.SupportedCPU; 42 import rtm.predicate.SupportedVM; 43 44 public class TestUseRTMLockingOptionOnSupportedConfig 45 extends CommandLineOptionTest { 46 private static final String DEFAULT_VALUE = "false"; 47 48 private TestUseRTMLockingOptionOnSupportedConfig() { 49 super(new AndPredicate(new SupportedVM(), new SupportedCPU())); 50 } 51 52 @Override 53 public void runTestCases() throws Throwable { 54 String unrecongnizedOption 55 = CommandLineOptionTest.getUnrecognizedOptionErrorMessage( 56 "UseRTMLocking"); 57 // verify that there are no warning or error in VM output 58 CommandLineOptionTest.verifySameJVMStartup(null, 59 new String[]{ 60 RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR, 61 unrecongnizedOption 62 }, ExitCode.OK, 63 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 64 "-XX:+UseRTMLocking" 65 ); 66 67 CommandLineOptionTest.verifySameJVMStartup(null, 68 new String[]{ 69 RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR, 70 unrecongnizedOption 71 }, ExitCode.OK, 72 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 73 "-XX:-UseRTMLocking" 74 ); 75 // verify that UseRTMLocking is of by default 76 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking", 77 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE, 78 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS); 79 // verify that we can change UseRTMLocking value 80 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking", 81 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE, 82 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 83 "-XX:-UseRTMLocking"); 84 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking", 85 "true", CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 86 "-XX:+UseRTMLocking"); 87 } 88 89 public static void main(String args[]) throws Throwable { 90 new TestUseRTMLockingOptionOnSupportedConfig().test(); 91 } 92 } | 37 38 import com.oracle.java.testlibrary.ExitCode; 39 import com.oracle.java.testlibrary.cli.*; 40 import com.oracle.java.testlibrary.cli.predicate.AndPredicate; 41 import rtm.predicate.SupportedCPU; 42 import rtm.predicate.SupportedVM; 43 44 public class TestUseRTMLockingOptionOnSupportedConfig 45 extends CommandLineOptionTest { 46 private static final String DEFAULT_VALUE = "false"; 47 48 private TestUseRTMLockingOptionOnSupportedConfig() { 49 super(new AndPredicate(new SupportedVM(), new SupportedCPU())); 50 } 51 52 @Override 53 public void runTestCases() throws Throwable { 54 String unrecongnizedOption 55 = CommandLineOptionTest.getUnrecognizedOptionErrorMessage( 56 "UseRTMLocking"); 57 String shouldPassMessage = "VM option 'UseRTMLocking' is experimental" 58 + "%nJVM startup should pass with " 59 + "-XX:+UnlockExperimentalVMOptions flag"; 60 // verify that there are no warning or error in VM output 61 CommandLineOptionTest.verifySameJVMStartup(null, 62 new String[]{ 63 RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR, 64 unrecongnizedOption 65 }, shouldPassMessage, "There should not be any warning when use" 66 + "with -XX:+UnlockExperimentalVMOptions", ExitCode.OK, 67 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 68 "-XX:+UseRTMLocking" 69 ); 70 71 CommandLineOptionTest.verifySameJVMStartup(null, 72 new String[]{ 73 RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR, 74 unrecongnizedOption 75 }, shouldPassMessage, "There should not be any warning when use" 76 + "with -XX:+UnlockExperimentalVMOptions", ExitCode.OK, 77 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 78 "-XX:-UseRTMLocking" 79 ); 80 // verify that UseRTMLocking is of by default 81 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking", 82 TestUseRTMLockingOptionOnSupportedConfig.DEFAULT_VALUE, 83 String.format("Default value of option 'UseRTMLocking' should " 84 + "be '%s'", DEFAULT_VALUE), 85 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS); 86 // verify that we can change UseRTMLocking value 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 "-XX:-UseRTMLocking"); 93 CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking", 94 "true", "Value of 'UseRTMLocking' should be set " 95 + "to 'true' if -XX:+UseRTMLocking flag set", 96 CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS, 97 "-XX:+UseRTMLocking"); 98 } 99 100 public static void main(String args[]) throws Throwable { 101 new TestUseRTMLockingOptionOnSupportedConfig().test(); 102 } 103 } |