Fixes #1763 - Flaky test: SimpleTimerTest (#1816)
* replaced asserts with loop to recheck test conditions if failed
diff --git a/server/base/src/test/java/org/apache/accumulo/server/util/time/SimpleTimerTest.java b/server/base/src/test/java/org/apache/accumulo/server/util/time/SimpleTimerTest.java
index 565e97b..1f03b1a 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/util/time/SimpleTimerTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/util/time/SimpleTimerTest.java
@@ -20,7 +20,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
import java.util.concurrent.atomic.AtomicInteger;
@@ -70,35 +69,41 @@
}
}
- @Test
+ @Test(timeout = 5000)
public void testOneTimeSchedule() throws InterruptedException {
AtomicInteger i = new AtomicInteger();
Incrementer r = new Incrementer(i);
t.schedule(r, DELAY);
Thread.sleep(DELAY + PAD);
- assertEquals(1, i.get());
+ while (i.get() != 1) {
+ Thread.sleep(PAD);
+ }
r.cancel();
}
- @Test
+ @Test(timeout = 10000)
public void testFixedDelaySchedule() throws InterruptedException {
AtomicInteger i = new AtomicInteger();
Incrementer r = new Incrementer(i);
t.schedule(r, DELAY, PERIOD);
Thread.sleep(DELAY + (2 * PERIOD) + PAD);
- assertEquals(3, i.get());
+ while (i.get() != 3) {
+ Thread.sleep(PAD);
+ }
r.cancel();
}
- @Test
+ @Test(timeout = 5000)
public void testFailure() throws InterruptedException {
Thrower r = new Thrower();
t.schedule(r, DELAY);
Thread.sleep(DELAY + PAD);
- assertTrue(r.wasRun);
+ while (!r.wasRun) {
+ Thread.sleep(PAD);
+ }
}
- @Test
+ @Test(timeout = 5000)
public void testSingleton() {
assertEquals(1, SimpleTimer.getInstanceThreadPoolSize());
SimpleTimer t2 = SimpleTimer.getInstance(2);