mirror of https://github.com/apache/activemq.git
Make the test more tolerant of slow machines by replacing fixed length
sleep with a Wait condition.
This commit is contained in:
parent
aae7aeaf39
commit
858ab40203
|
@ -37,6 +37,7 @@ import org.apache.activemq.broker.region.policy.PolicyEntry;
|
||||||
import org.apache.activemq.broker.region.policy.PolicyMap;
|
import org.apache.activemq.broker.region.policy.PolicyMap;
|
||||||
import org.apache.activemq.command.ActiveMQQueue;
|
import org.apache.activemq.command.ActiveMQQueue;
|
||||||
import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter;
|
import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter;
|
||||||
|
import org.apache.activemq.util.Wait;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -202,15 +203,17 @@ public class AMQ4368Test {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testENTMQ220() throws InterruptedException, JMSException {
|
public void testENTMQ220() throws Exception {
|
||||||
LOG.info("Start test.");
|
LOG.info("Start test.");
|
||||||
CountDownLatch producer1Started = new CountDownLatch(1);
|
CountDownLatch producer1Started = new CountDownLatch(1);
|
||||||
CountDownLatch producer2Started = new CountDownLatch(1);
|
CountDownLatch producer2Started = new CountDownLatch(1);
|
||||||
CountDownLatch listener1Started = new CountDownLatch(1);
|
CountDownLatch listener1Started = new CountDownLatch(1);
|
||||||
|
|
||||||
ProducingClient producer1 = new ProducingClient("1", producer1Started);
|
final ProducingClient producer1 = new ProducingClient("1", producer1Started);
|
||||||
ProducingClient producer2 = new ProducingClient("2", producer2Started);
|
final ProducingClient producer2 = new ProducingClient("2", producer2Started);
|
||||||
ConsumingClient listener1 = new ConsumingClient("subscriber-1", listener1Started);
|
final ConsumingClient listener1 = new ConsumingClient("subscriber-1", listener1Started);
|
||||||
|
final AtomicLong lastSize = new AtomicLong();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
producer1.start();
|
producer1.start();
|
||||||
|
@ -221,13 +224,19 @@ public class AMQ4368Test {
|
||||||
producer2Started.await(15, TimeUnit.SECONDS);
|
producer2Started.await(15, TimeUnit.SECONDS);
|
||||||
listener1Started.await(15, TimeUnit.SECONDS);
|
listener1Started.await(15, TimeUnit.SECONDS);
|
||||||
|
|
||||||
long lastSize = listener1.size.get();
|
lastSize.set(listener1.size.get());
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
Thread.sleep(2000);
|
Wait.waitFor(new Wait.Condition() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSatisified() throws Exception {
|
||||||
|
return listener1.size.get() > lastSize.get();
|
||||||
|
}
|
||||||
|
});
|
||||||
long size = listener1.size.get();
|
long size = listener1.size.get();
|
||||||
LOG.info("Listener 1: consumed: " + (size - lastSize));
|
LOG.info("Listener 1: consumed: " + (size - lastSize.get()));
|
||||||
assertTrue("No messages received on iteration: " + i, size > lastSize);
|
assertTrue("No messages received on iteration: " + i, size > lastSize.get());
|
||||||
lastSize = size;
|
lastSize.set(size);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
LOG.info("Stopping clients");
|
LOG.info("Stopping clients");
|
||||||
|
|
Loading…
Reference in New Issue