Skip to content

Commit

Permalink
[Java] Tidy up test after merge of PR #634.
Browse files Browse the repository at this point in the history
  • Loading branch information
mjpt777 committed Feb 11, 2019
1 parent 6f6bed0 commit 519f121
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions aeron-archive/src/test/java/io/aeron/archive/ArchiveTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,10 @@

import io.aeron.archive.client.AeronArchive;
import io.aeron.driver.MediaDriver;
import org.agrona.concurrent.ManyToOneConcurrentLinkedQueue;
import org.junit.Test;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.*;

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
Expand All @@ -47,19 +45,20 @@ public void shouldAllowMultipleConnectionsInParallel() throws InterruptedExcepti
final int numberOfArchiveClients = 5;
final CountDownLatch latch = new CountDownLatch(numberOfArchiveClients);
final ExecutorService executorService = Executors.newFixedThreadPool(numberOfArchiveClients);

final ManyToOneConcurrentLinkedQueue<AeronArchive> archiveClientQueue = new ManyToOneConcurrentLinkedQueue<>();
final MediaDriver.Context driverCtx = new MediaDriver.Context();
final Archive.Context archiveCtx = new Archive.Context();

try (ArchivingMediaDriver driver = ArchivingMediaDriver.launch(driverCtx, archiveCtx))
try (ArchivingMediaDriver ignore = ArchivingMediaDriver.launch(driverCtx, archiveCtx))
{
for (int i = 0; i < numberOfArchiveClients; i++)
{
executorService.execute(() ->
{
AeronArchive.connect();
latch.countDown();
});
executorService.execute(
() ->
{
archiveClientQueue.add(AeronArchive.connect());
latch.countDown();
});
}

latch.await(10, TimeUnit.SECONDS);
Expand All @@ -68,6 +67,14 @@ public void shouldAllowMultipleConnectionsInParallel() throws InterruptedExcepti
}
finally
{
executorService.shutdownNow();

AeronArchive archiveClient;
while (null != (archiveClient = archiveClientQueue.poll()))
{
archiveClient.close();
}

archiveCtx.deleteArchiveDirectory();
driverCtx.deleteAeronDirectory();
}
Expand Down

0 comments on commit 519f121

Please sign in to comment.