22 */ 23 24 import com.oracle.java.testlibrary.ExitCode; 25 import com.oracle.java.testlibrary.Platform; 26 import com.oracle.java.testlibrary.cli.CommandLineOptionTest; 27 import com.oracle.java.testlibrary.cli.predicate.AndPredicate; 28 29 /** 30 * Generic test case for SHA-related options targeted to SPARC CPUs which 31 * support instructions required by the tested option. 32 */ 33 public class GenericTestCaseForSupportedSparcCPU extends 34 SHAOptionsBase.TestCase { 35 public GenericTestCaseForSupportedSparcCPU(String optionName) { 36 super(optionName, new AndPredicate(Platform::isSparc, 37 SHAOptionsBase.getPredicateForOption(optionName))); 38 } 39 40 @Override 41 protected void verifyWarnings() throws Throwable { 42 // Verify that there are no warning when option is explicitly enabled. 43 CommandLineOptionTest.verifySameJVMStartup(null, new String[] { 44 SHAOptionsBase.getWarningForUnsupportedCPU(optionName) 45 }, ExitCode.OK, 46 CommandLineOptionTest.prepareBooleanFlag(optionName, true)); 47 48 // Verify that option could be disabled even if +UseSHA was passed to 49 // JVM. 50 CommandLineOptionTest.verifySameJVMStartup(null, new String[] { 51 SHAOptionsBase.getWarningForUnsupportedCPU(optionName) 52 }, ExitCode.OK, 53 CommandLineOptionTest.prepareBooleanFlag( 54 SHAOptionsBase.USE_SHA_OPTION, true), 55 CommandLineOptionTest.prepareBooleanFlag(optionName, false)); 56 57 // Verify that it is possible to enable the tested option and disable 58 // all SHA intrinsics via -UseSHA without any warnings. 59 CommandLineOptionTest.verifySameJVMStartup(null, new String[] { 60 SHAOptionsBase.getWarningForUnsupportedCPU(optionName) 61 }, ExitCode.OK, 62 CommandLineOptionTest.prepareBooleanFlag( 63 SHAOptionsBase.USE_SHA_OPTION, false), 64 CommandLineOptionTest.prepareBooleanFlag(optionName, true)); 65 } 66 67 @Override 68 protected void verifyOptionValues() throws Throwable { 69 // Verify that on supported CPU option is enabled by default. 70 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true"); 71 72 // Verify that it is possible to explicitly enable the option. 73 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true", 74 CommandLineOptionTest.prepareBooleanFlag(optionName, true)); 75 76 // Verify that it is possible to explicitly disable the option. 77 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", 78 CommandLineOptionTest.prepareBooleanFlag(optionName, false)); 79 80 // verify that option is disabled when -UseSHA was passed to JVM. 81 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", 82 CommandLineOptionTest.prepareBooleanFlag(optionName, true), 83 CommandLineOptionTest.prepareBooleanFlag( 84 SHAOptionsBase.USE_SHA_OPTION, false)); 85 86 // Verify that it is possible to explicitly disable the tested option 87 // even if +UseSHA was passed to JVM. 88 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", 89 CommandLineOptionTest.prepareBooleanFlag( 90 SHAOptionsBase.USE_SHA_OPTION, true), 91 CommandLineOptionTest.prepareBooleanFlag(optionName, false)); 92 } 93 } | 22 */ 23 24 import com.oracle.java.testlibrary.ExitCode; 25 import com.oracle.java.testlibrary.Platform; 26 import com.oracle.java.testlibrary.cli.CommandLineOptionTest; 27 import com.oracle.java.testlibrary.cli.predicate.AndPredicate; 28 29 /** 30 * Generic test case for SHA-related options targeted to SPARC CPUs which 31 * support instructions required by the tested option. 32 */ 33 public class GenericTestCaseForSupportedSparcCPU extends 34 SHAOptionsBase.TestCase { 35 public GenericTestCaseForSupportedSparcCPU(String optionName) { 36 super(optionName, new AndPredicate(Platform::isSparc, 37 SHAOptionsBase.getPredicateForOption(optionName))); 38 } 39 40 @Override 41 protected void verifyWarnings() throws Throwable { 42 43 String shouldPassMessage = String.format("JVM should start with option" 44 + " '%s' without any warnings", optionName); 45 // Verify that there are no warning when option is explicitly enabled. 46 CommandLineOptionTest.verifySameJVMStartup(null, new String[] { 47 SHAOptionsBase.getWarningForUnsupportedCPU(optionName) 48 }, shouldPassMessage, shouldPassMessage, ExitCode.OK, 49 CommandLineOptionTest.prepareBooleanFlag(optionName, true)); 50 51 // Verify that option could be disabled even if +UseSHA was passed to 52 // JVM. 53 CommandLineOptionTest.verifySameJVMStartup(null, new String[] { 54 SHAOptionsBase.getWarningForUnsupportedCPU(optionName) 55 }, shouldPassMessage, String.format("It should be able to " 56 + "disable option '%s' even if %s was passed to JVM", 57 optionName, CommandLineOptionTest.prepareBooleanFlag( 58 SHAOptionsBase.USE_SHA_OPTION, true)), 59 ExitCode.OK, 60 CommandLineOptionTest.prepareBooleanFlag( 61 SHAOptionsBase.USE_SHA_OPTION, true), 62 CommandLineOptionTest.prepareBooleanFlag(optionName, false)); 63 64 // Verify that it is possible to enable the tested option and disable 65 // all SHA intrinsics via -UseSHA without any warnings. 66 CommandLineOptionTest.verifySameJVMStartup(null, new String[] { 67 SHAOptionsBase.getWarningForUnsupportedCPU(optionName) 68 }, shouldPassMessage, String.format("It should be able to " 69 + "enable option '%s' even if %s was passed to JVM", 70 optionName, CommandLineOptionTest.prepareBooleanFlag( 71 SHAOptionsBase.USE_SHA_OPTION, false)), 72 ExitCode.OK, 73 CommandLineOptionTest.prepareBooleanFlag( 74 SHAOptionsBase.USE_SHA_OPTION, false), 75 CommandLineOptionTest.prepareBooleanFlag(optionName, true)); 76 } 77 78 @Override 79 protected void verifyOptionValues() throws Throwable { 80 // Verify that "It should be able to disable option " 81 82 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true", 83 String.format("Option '%s' should be enabled by default", 84 optionName)); 85 86 // Verify that it is possible to explicitly enable the option. 87 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "true", 88 String.format("Option '%s' was set to have value 'true'", 89 optionName), 90 CommandLineOptionTest.prepareBooleanFlag(optionName, true)); 91 92 // Verify that it is possible to explicitly disable the option. 93 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", 94 String.format("Option '%s' was set to have value 'false'", 95 optionName), 96 CommandLineOptionTest.prepareBooleanFlag(optionName, false)); 97 98 // verify that option is disabled when -UseSHA was passed to JVM. 99 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", 100 String.format("Option '%s' should have value 'false' when %s" 101 + " flag set to JVM", optionName, 102 CommandLineOptionTest.prepareBooleanFlag( 103 SHAOptionsBase.USE_SHA_OPTION, false)), 104 CommandLineOptionTest.prepareBooleanFlag(optionName, true), 105 CommandLineOptionTest.prepareBooleanFlag( 106 SHAOptionsBase.USE_SHA_OPTION, false)); 107 108 // Verify that it is possible to explicitly disable the tested option 109 // even if +UseSHA was passed to JVM. 110 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false", 111 String.format("Option '%s' should have value 'false' if set so" 112 + " even if %s flag set to JVM", optionName, 113 CommandLineOptionTest.prepareBooleanFlag( 114 SHAOptionsBase.USE_SHA_OPTION, true)), 115 CommandLineOptionTest.prepareBooleanFlag( 116 SHAOptionsBase.USE_SHA_OPTION, true), 117 CommandLineOptionTest.prepareBooleanFlag(optionName, false)); 118 } 119 } |