[TEST] Fixes PageParamsTests to no underflow from and size
In `mutateInstance()` the from or size could become negative if the other one was pushed over the limit for `from + size`. This change fixes this case to make sure after the mutate method is called the from and size obey the limit but are also both `>= 0` relates elastic/x-pack-elasticsearch#2344 Original commit: elastic/x-pack-elasticsearch@a8a7072fcc
This commit is contained in:
parent
f05568e7b3
commit
d0103d6cab
|
@ -60,22 +60,35 @@ public class PageParamsTests extends AbstractSerializingTestCase<PageParams> {
|
|||
protected PageParams mutateInstance(PageParams instance) throws IOException {
|
||||
int from = instance.getFrom();
|
||||
int size = instance.getSize();
|
||||
int amountToAdd = between(1, 20);
|
||||
switch (between(0, 1)) {
|
||||
case 0:
|
||||
from += between(1, 20);
|
||||
from += amountToAdd;
|
||||
// If we have gone above the limit for max and size then we need to
|
||||
// change size too
|
||||
// adjust from and size to be valid
|
||||
if ((from + size) > PageParams.MAX_FROM_SIZE_SUM) {
|
||||
if (from >= 2 * amountToAdd) {
|
||||
// If from is large enough then just subtract the amount we added twice
|
||||
from -= 2 * amountToAdd;
|
||||
} else {
|
||||
// Otherwise change size to obey the limit
|
||||
size = PageParams.MAX_FROM_SIZE_SUM - from;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
size += between(1, 20);
|
||||
size += amountToAdd;
|
||||
// If we have gone above the limit for max and size then we need to
|
||||
// change from too
|
||||
// adjust from and size to be valid
|
||||
if ((from + size) > PageParams.MAX_FROM_SIZE_SUM) {
|
||||
if (size >= 2 * amountToAdd) {
|
||||
// If from is large enough then just subtract the amount we added twice
|
||||
size -= 2 * amountToAdd;
|
||||
} else {
|
||||
// Otherwise change size to obey the limit
|
||||
from = PageParams.MAX_FROM_SIZE_SUM - size;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Illegal randomisation branch");
|
||||
|
|
Loading…
Reference in New Issue