Fixed race condition in test and added timeouts to prevent possibility of infinite loop.
parent
46046b574a
commit
bdaf7cba23
|
@ -19,7 +19,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_zeropages() {
|
public void execute_zeropages() {
|
||||||
CountingPageOperation op = new CountingPageOperation(0,Long.MAX_VALUE);
|
CountingPageOperation op = new CountingPageOperation(0,Long.MAX_VALUE);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
@ -27,7 +27,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(0L, op.counter);
|
assertEquals(0L, op.counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_singlepage() {
|
public void execute_singlepage() {
|
||||||
CountingPageOperation op = new CountingPageOperation(1,Long.MAX_VALUE);
|
CountingPageOperation op = new CountingPageOperation(1,Long.MAX_VALUE);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
@ -35,7 +35,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(10L, op.counter);
|
assertEquals(10L, op.counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_negpage() {
|
public void execute_negpage() {
|
||||||
CountingPageOperation op = new CountingPageOperation(-1,Long.MAX_VALUE);
|
CountingPageOperation op = new CountingPageOperation(-1,Long.MAX_VALUE);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
@ -43,7 +43,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(0L, op.counter);
|
assertEquals(0L, op.counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_npage(){
|
public void execute_npage(){
|
||||||
int n = 7;
|
int n = 7;
|
||||||
CountingPageOperation op = new CountingPageOperation(n,Long.MAX_VALUE);
|
CountingPageOperation op = new CountingPageOperation(n,Long.MAX_VALUE);
|
||||||
|
@ -52,7 +52,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(n*10L, op.counter);
|
assertEquals(n*10L, op.counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_nullpage(){
|
public void execute_nullpage(){
|
||||||
CountingPageOperation op = new NullPageCountingPageOperation(Integer.MAX_VALUE, Long.MAX_VALUE);
|
CountingPageOperation op = new NullPageCountingPageOperation(Integer.MAX_VALUE, Long.MAX_VALUE);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
@ -60,7 +60,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(0L, op.getCounter());
|
assertEquals(0L, op.getCounter());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_emptypage(){
|
public void execute_emptypage(){
|
||||||
CountingPageOperation op = new EmptyPageCountingPageOperation(Integer.MAX_VALUE, Long.MAX_VALUE);
|
CountingPageOperation op = new EmptyPageCountingPageOperation(Integer.MAX_VALUE, Long.MAX_VALUE);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
@ -68,27 +68,30 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(0L, op.getCounter());
|
assertEquals(0L, op.getCounter());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_zerotime(){
|
public void execute_zerotime(){
|
||||||
CountingPageOperation op = new CountingPageOperation(Integer.MAX_VALUE,0L);
|
CountingPageOperation op = new CountingPageOperation(Integer.MAX_VALUE,0L);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
|
||||||
assertEquals(0L, op.getCounter());
|
assertEquals(0L, op.getCounter());
|
||||||
assertEquals(0L, op.getLastFetchTime());
|
assertEquals(0L, op.getLastFetchRequestTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_nonzerotime(){
|
public void execute_nonzerotime(){
|
||||||
Long timeMillis = 100L;
|
Long timeMillis = 200L;
|
||||||
CountingPageOperation op = new CountingPageOperation(Integer.MAX_VALUE,timeMillis);
|
CountingPageOperation op = new CountingPageOperation(Integer.MAX_VALUE,timeMillis);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
|
||||||
assertTrue("start time " + op.getStartTime() + "" +
|
assertTrue("start time " + op.getStartTime() + "" +
|
||||||
" to last fetch time " + op.getLastFetchTime() +
|
" to last fetch time " + op.getLastFetchRequestTime() +
|
||||||
" exceeds max time" + timeMillis, op.getLastFetchTime() - op.getStartTime() <= timeMillis);
|
" or previous fetch time " + op.getPreviousFetchRequestTime() +
|
||||||
|
" exceeds max time" + timeMillis
|
||||||
|
, (op.getLastFetchRequestTime() - op.getStartTime() <= timeMillis)
|
||||||
|
|| (op.getPreviousFetchRequestTime() - op.getStartTime() <= timeMillis));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_negtime(){
|
public void execute_negtime(){
|
||||||
Long timeMillis = -100L;
|
Long timeMillis = -100L;
|
||||||
CountingPageOperation op = new CountingPageOperation(Integer.MAX_VALUE,timeMillis);
|
CountingPageOperation op = new CountingPageOperation(Integer.MAX_VALUE,timeMillis);
|
||||||
|
@ -97,7 +100,7 @@ public class AbstractPageOperationTemplateTest {
|
||||||
assertEquals(0L, op.getCounter());
|
assertEquals(0L, op.getCounter());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 1000L)
|
||||||
public void execute_swallowException(){
|
public void execute_swallowException(){
|
||||||
CountingPageOperation op = new EvenExceptionCountingPageOperation(1, 1000L);
|
CountingPageOperation op = new EvenExceptionCountingPageOperation(1, 1000L);
|
||||||
op.execute();
|
op.execute();
|
||||||
|
@ -125,7 +128,8 @@ public class AbstractPageOperationTemplateTest {
|
||||||
private int pageSize = 10;
|
private int pageSize = 10;
|
||||||
private long counter = 0L;
|
private long counter = 0L;
|
||||||
private long startTime;
|
private long startTime;
|
||||||
private long lastFetchTime;
|
private long lastFetchRequestTime;
|
||||||
|
private long previousFetchRequestTime;
|
||||||
|
|
||||||
private CountingPageOperation(int maxPages, long maxTime) {
|
private CountingPageOperation(int maxPages, long maxTime) {
|
||||||
super(maxPages, maxTime);
|
super(maxPages, maxTime);
|
||||||
|
@ -134,8 +138,12 @@ public class AbstractPageOperationTemplateTest {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<String> fetchPage() {
|
public Collection<String> fetchPage() {
|
||||||
lastFetchTime = System.currentTimeMillis();
|
if(lastFetchRequestTime > 0){
|
||||||
List<String> page = new ArrayList<>(pageSize);
|
previousFetchRequestTime = lastFetchRequestTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastFetchRequestTime = System.currentTimeMillis();
|
||||||
|
List<String> page = new ArrayList<String>(pageSize);
|
||||||
for(int i = 0; i < pageSize; i++ ) {
|
for(int i = 0; i < pageSize; i++ ) {
|
||||||
page.add("item " + currentPageFetch * pageSize + i);
|
page.add("item " + currentPageFetch * pageSize + i);
|
||||||
}
|
}
|
||||||
|
@ -152,8 +160,12 @@ public class AbstractPageOperationTemplateTest {
|
||||||
return counter;
|
return counter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getLastFetchTime() {
|
public long getLastFetchRequestTime() {
|
||||||
return lastFetchTime;
|
return lastFetchRequestTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getPreviousFetchRequestTime() {
|
||||||
|
return previousFetchRequestTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getStartTime(){
|
public long getStartTime(){
|
||||||
|
|
Loading…
Reference in New Issue