Merge branch 'fix-test-sensitivity-to-arrival-order' into 'master'

Fix sensitivity of integration tests to message arrival order

See merge request briar/briar!1205
This commit is contained in:
akwizgran
2019-12-20 12:12:36 +00:00

View File

@@ -130,7 +130,8 @@ public abstract class BriarIntegrationTest<C extends BriarIntegrationTestCompone
protected C c0, c1, c2; protected C c0, c1, c2;
private final Semaphore messageSemaphore = new Semaphore(0); private final Semaphore messageSemaphore = new Semaphore(0);
private final AtomicInteger messageCounter = new AtomicInteger(0); private final AtomicInteger deliveryCounter = new AtomicInteger(0);
private final AtomicInteger validationCounter = new AtomicInteger(0);
private final AtomicInteger ackCounter = new AtomicInteger(0); private final AtomicInteger ackCounter = new AtomicInteger(0);
private final File testDir = TestUtils.getTestDirectory(); private final File testDir = TestUtils.getTestDirectory();
private final String AUTHOR0 = "Author 0"; private final String AUTHOR0 = "Author 0";
@@ -163,6 +164,9 @@ public abstract class BriarIntegrationTest<C extends BriarIntegrationTestCompone
validationWaiter = new Waiter(); validationWaiter = new Waiter();
deliveryWaiter = new Waiter(); deliveryWaiter = new Waiter();
ackWaiter = new Waiter(); ackWaiter = new Waiter();
deliveryCounter.set(0);
validationCounter.set(0);
ackCounter.set(0);
createAndRegisterIdentities(); createAndRegisterIdentities();
startLifecycles(); startLifecycles();
@@ -212,14 +216,14 @@ public abstract class BriarIntegrationTest<C extends BriarIntegrationTestCompone
if (event.getState() == DELIVERED) { if (event.getState() == DELIVERED) {
LOG.info("Delivered new message " LOG.info("Delivered new message "
+ event.getMessageId()); + event.getMessageId());
messageCounter.addAndGet(1); deliveryCounter.addAndGet(1);
loadAndLogMessage(event.getMessageId()); loadAndLogMessage(event.getMessageId());
deliveryWaiter.resume(); deliveryWaiter.resume();
} else if (event.getState() == INVALID || } else if (event.getState() == INVALID ||
event.getState() == PENDING) { event.getState() == PENDING) {
LOG.info("Validated new " + event.getState().name() + LOG.info("Validated new " + event.getState().name() +
" message " + event.getMessageId()); " message " + event.getMessageId());
messageCounter.addAndGet(1); validationCounter.addAndGet(1);
loadAndLogMessage(event.getMessageId()); loadAndLogMessage(event.getMessageId());
validationWaiter.resume(); validationWaiter.resume();
} }
@@ -380,10 +384,13 @@ public abstract class BriarIntegrationTest<C extends BriarIntegrationTestCompone
if (valid) { if (valid) {
deliveryWaiter.await(TIMEOUT, num); deliveryWaiter.await(TIMEOUT, num);
assertEquals("Messages delivered", num,
deliveryCounter.getAndSet(0));
} else { } else {
validationWaiter.await(TIMEOUT, num); validationWaiter.await(TIMEOUT, num);
assertEquals("Messages validated", num,
validationCounter.getAndSet(0));
} }
assertEquals("Messages delivered", num, messageCounter.getAndSet(0));
try { try {
messageSemaphore.tryAcquire(num, TIMEOUT, MILLISECONDS); messageSemaphore.tryAcquire(num, TIMEOUT, MILLISECONDS);
} catch (InterruptedException e) { } catch (InterruptedException e) {
@@ -421,7 +428,7 @@ public abstract class BriarIntegrationTest<C extends BriarIntegrationTestCompone
ackWaiter.await(TIMEOUT, num); ackWaiter.await(TIMEOUT, num);
assertEquals("ACKs delivered", num, ackCounter.getAndSet(0)); assertEquals("ACKs delivered", num, ackCounter.getAndSet(0));
assertEquals("No messages delivered", 0, messageCounter.get()); assertEquals("No messages delivered", 0, deliveryCounter.get());
try { try {
messageSemaphore.tryAcquire(num, TIMEOUT, MILLISECONDS); messageSemaphore.tryAcquire(num, TIMEOUT, MILLISECONDS);
} catch (InterruptedException e) { } catch (InterruptedException e) {