< prev index next >
test/gc/arguments/TestSurvivorAlignmentInBytesOption.java
Print this page
rev 7469 : 8066143: [TESTBUG] New tests in gc/survivorAlignment/ fails
Reviewed-by:
*** 20,52 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import com.oracle.java.testlibrary.ExitCode;
- import com.oracle.java.testlibrary.Utils;
import com.oracle.java.testlibrary.cli.CommandLineOptionTest;
- import java.util.Collections;
- import java.util.LinkedList;
- import java.util.List;
-
/**
* @test
* @bug 8031323
* @summary Verify SurvivorAlignmentInBytes option processing.
* @library /testlibrary
* @run main TestSurvivorAlignmentInBytesOption
*/
public class TestSurvivorAlignmentInBytesOption {
- private static final String[] FILTERED_VM_OPTIONS
- = Utils.getFilteredTestJavaOpts(
- "UnlockExperimentalVMOptions",
- "SurvivorAlignmentInBytes",
- "ObjectAlignmentInBytes");
-
public static void main(String args[]) throws Throwable {
String optionName = "SurvivorAlignmentInBytes";
String optionIsExperimental
= CommandLineOptionTest.getExperimentalOptionErrorMessage(
optionName);
String valueIsTooSmall= ".*SurvivorAlignmentInBytes=.*must be greater"
+ " than ObjectAlignmentInBytes.*";
--- 20,47 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import com.oracle.java.testlibrary.ExitCode;
import com.oracle.java.testlibrary.cli.CommandLineOptionTest;
/**
* @test
* @bug 8031323
* @summary Verify SurvivorAlignmentInBytes option processing.
* @library /testlibrary
+ * @requires vm.opt.SurvivorAlignmentInBytes == null
+ * & vm.opt.ObjectAlignmentInBytes == null
+ * & vm.opt.UnlockExperimentalVMOptions == null
+ * & (vm.opt.IgnoreUnrecognizedVMOptions == null
+ * | vm.opt.IgnoreUnrecognizedVMOptions == "false")
* @run main TestSurvivorAlignmentInBytesOption
*/
public class TestSurvivorAlignmentInBytesOption {
public static void main(String args[]) throws Throwable {
String optionName = "SurvivorAlignmentInBytes";
+ String unlockExperimentalVMOpts = "UnlockExperimentalVMOptions";
String optionIsExperimental
= CommandLineOptionTest.getExperimentalOptionErrorMessage(
optionName);
String valueIsTooSmall= ".*SurvivorAlignmentInBytes=.*must be greater"
+ " than ObjectAlignmentInBytes.*";
*** 56,120 ****
// Verify that without -XX:+UnlockExperimentalVMOptions usage of
// SurvivorAlignmentInBytes option will cause JVM startup failure
// with the warning message saying that that option is experimental.
CommandLineOptionTest.verifyJVMStartup(
new String[]{optionIsExperimental}, null, ExitCode.FAIL, false,
- TestSurvivorAlignmentInBytesOption.prepareOptions(
"-XX:-UnlockExperimentalVMOptions",
! CommandLineOptionTest.prepareNumericFlag(
! optionName, 64)));
// Verify that with -XX:+UnlockExperimentalVMOptions passed to JVM
// usage of SurvivorAlignmentInBytes option won't cause JVM startup
// failure.
CommandLineOptionTest.verifyJVMStartup(
null, new String[]{optionIsExperimental}, ExitCode.OK, false,
! TestSurvivorAlignmentInBytesOption.prepareOptions(
! CommandLineOptionTest.prepareNumericFlag(
! optionName, 64)));
// Verify that if specified SurvivorAlignmentInBytes is lower then
// ObjectAlignmentInBytes, then the JVM startup will fail with
// appropriate error message.
CommandLineOptionTest.verifyJVMStartup(
new String[]{valueIsTooSmall}, null, ExitCode.FAIL, false,
! TestSurvivorAlignmentInBytesOption.prepareOptions(
! CommandLineOptionTest.prepareNumericFlag(
! optionName, 2)));
// Verify that if specified SurvivorAlignmentInBytes value is not
// a power of 2 then the JVM startup will fail with appropriate error
// message.
CommandLineOptionTest.verifyJVMStartup(
new String[]{mustBePowerOf2}, null, ExitCode.FAIL, false,
! TestSurvivorAlignmentInBytesOption.prepareOptions(
! CommandLineOptionTest.prepareNumericFlag(
! optionName, 127)));
// Verify that if SurvivorAlignmentInBytes has correct value, then
// the JVM will be started without errors.
CommandLineOptionTest.verifyJVMStartup(
null, new String[]{".*SurvivorAlignmentInBytes.*"},
ExitCode.OK, false,
! TestSurvivorAlignmentInBytesOption.prepareOptions(
! CommandLineOptionTest.prepareNumericFlag(
! optionName, 128)));
// Verify that we can setup different SurvivorAlignmentInBytes values.
for (int alignment = 32; alignment <= 128; alignment *= 2) {
CommandLineOptionTest.verifyOptionValue(optionName,
! Integer.toString(alignment), false,
! TestSurvivorAlignmentInBytesOption.prepareOptions(
CommandLineOptionTest.prepareNumericFlag(
! optionName, alignment)));
}
}
-
- private static String[] prepareOptions(String... options) {
- List<String> finalOptions = new LinkedList<>();
- Collections.addAll(finalOptions,
- TestSurvivorAlignmentInBytesOption.FILTERED_VM_OPTIONS);
- finalOptions.add(CommandLineOptionTest.UNLOCK_EXPERIMENTAL_VM_OPTIONS);
- Collections.addAll(finalOptions, options);
- return finalOptions.toArray(new String[finalOptions.size()]);
- }
}
--- 51,107 ----
// Verify that without -XX:+UnlockExperimentalVMOptions usage of
// SurvivorAlignmentInBytes option will cause JVM startup failure
// with the warning message saying that that option is experimental.
CommandLineOptionTest.verifyJVMStartup(
new String[]{optionIsExperimental}, null, ExitCode.FAIL, false,
"-XX:-UnlockExperimentalVMOptions",
! CommandLineOptionTest.prepareBooleanFlag(
! unlockExperimentalVMOpts, false),
! CommandLineOptionTest.prepareNumericFlag(optionName, 64));
// Verify that with -XX:+UnlockExperimentalVMOptions passed to JVM
// usage of SurvivorAlignmentInBytes option won't cause JVM startup
// failure.
CommandLineOptionTest.verifyJVMStartup(
null, new String[]{optionIsExperimental}, ExitCode.OK, false,
! CommandLineOptionTest.prepareBooleanFlag(
! unlockExperimentalVMOpts, true),
! CommandLineOptionTest.prepareNumericFlag(optionName, 64));
// Verify that if specified SurvivorAlignmentInBytes is lower then
// ObjectAlignmentInBytes, then the JVM startup will fail with
// appropriate error message.
CommandLineOptionTest.verifyJVMStartup(
new String[]{valueIsTooSmall}, null, ExitCode.FAIL, false,
! CommandLineOptionTest.prepareBooleanFlag(
! unlockExperimentalVMOpts, true),
! CommandLineOptionTest.prepareNumericFlag(optionName, 2));
// Verify that if specified SurvivorAlignmentInBytes value is not
// a power of 2 then the JVM startup will fail with appropriate error
// message.
CommandLineOptionTest.verifyJVMStartup(
new String[]{mustBePowerOf2}, null, ExitCode.FAIL, false,
! CommandLineOptionTest.prepareBooleanFlag(
! unlockExperimentalVMOpts, true),
! CommandLineOptionTest.prepareNumericFlag(optionName, 127));
// Verify that if SurvivorAlignmentInBytes has correct value, then
// the JVM will be started without errors.
CommandLineOptionTest.verifyJVMStartup(
null, new String[]{".*SurvivorAlignmentInBytes.*"},
ExitCode.OK, false,
! CommandLineOptionTest.prepareBooleanFlag(
! unlockExperimentalVMOpts, true),
! CommandLineOptionTest.prepareNumericFlag(optionName, 128));
// Verify that we can setup different SurvivorAlignmentInBytes values.
for (int alignment = 32; alignment <= 128; alignment *= 2) {
CommandLineOptionTest.verifyOptionValue(optionName,
! Integer.toString(alignment),
! CommandLineOptionTest.prepareBooleanFlag(
! unlockExperimentalVMOpts, true),
CommandLineOptionTest.prepareNumericFlag(
! optionName, alignment));
}
}
}
< prev index next >