< prev index next >
test/runtime/CommandLine/OptionsValidation/common/optionsvalidation/IntJVMOption.java
Print this page
@@ -198,13 +198,18 @@
*/
@Override
protected List<String> getValidValues() {
List<String> validValues = new ArrayList<>();
+ if (testMinRange) {
validValues.add(min.toString());
+ }
+ if (testMaxRange) {
validValues.add(max.toString());
+ }
+ if (testMinRange) {
if ((min.compareTo(MINUS_ONE) == -1) && (max.compareTo(MINUS_ONE) == 1)) {
/*
* Add -1 as valid value if min is less than -1 and max is greater than -1
*/
validValues.add("-1");
@@ -220,11 +225,13 @@
/*
* Add 1 as valid value if min is less than 1 and max is greater than 1
*/
validValues.add("1");
}
+ }
+ if (testMaxRange) {
if ((min.compareTo(MAX_4_BYTE_INT_PLUS_ONE) == -1) && (max.compareTo(MAX_4_BYTE_INT_PLUS_ONE) == 1)) {
/*
* Check for overflow when flag is assigned to the
* 4 byte int variable
*/
@@ -236,10 +243,11 @@
* Check for overflow when flag is assigned to the
* 4 byte unsigned int variable
*/
validValues.add(MAX_4_BYTE_UNSIGNED_INT_PLUS_ONE.toString());
}
+ }
return validValues;
}
/**
@@ -250,30 +258,34 @@
*/
@Override
protected List<String> getInvalidValues() {
List<String> invalidValues = new ArrayList<>();
- if (withRange) {
/* Return invalid values only for options which have defined range in VM */
- if ((is32Bit && min.compareTo(MIN_4_BYTE_INT) != 0)
- || (!is32Bit && min.compareTo(MIN_LONG) != 0)) {
+ if (withRange) {
+ if (unsigned) {
+ /* Only add non-negative out-of-range values for unsigned options */
+ if (min.compareTo(BigInteger.ZERO) == 1) {
invalidValues.add(min.subtract(BigInteger.ONE).toString());
}
- if (!unsigned
- && ((is32Bit && (max.compareTo(MAX_4_BYTE_INT) != 0))
- || (!is32Bit && (max.compareTo(MAX_LONG) != 0)))) {
+ if ((is32Bit && (max.compareTo(MAX_4_BYTE_UNSIGNED_INT) != 0))
+ || (!is32Bit && !uint64 && (max.compareTo(MAX_UNSIGNED_LONG) != 0))
+ || (uint64 && (max.compareTo(MAX_UNSIGNED_LONG_64) != 0))) {
invalidValues.add(max.add(BigInteger.ONE).toString());
}
-
- if (unsigned
- && ((is32Bit && (max.compareTo(MAX_4_BYTE_UNSIGNED_INT) != 0))
- || (!is32Bit && !uint64 && (max.compareTo(MAX_UNSIGNED_LONG) != 0))
- || (uint64 && (max.compareTo(MAX_UNSIGNED_LONG_64) != 0)))) {
+ } else {
+ if ((is32Bit && min.compareTo(MIN_4_BYTE_INT) != 0)
+ || (!is32Bit && min.compareTo(MIN_LONG) != 0)) {
+ invalidValues.add(min.subtract(BigInteger.ONE).toString());
+ }
+ if ((is32Bit && (max.compareTo(MAX_4_BYTE_INT) != 0))
+ || (!is32Bit && (max.compareTo(MAX_LONG) != 0))) {
invalidValues.add(max.add(BigInteger.ONE).toString());
}
}
+ }
return invalidValues;
}
/**
< prev index next >