diff --git a/java/test/org/broadinstitute/sting/utils/threading/GenomeLocProcessingTrackerUnitTest.java b/java/test/org/broadinstitute/sting/utils/threading/GenomeLocProcessingTrackerUnitTest.java index f99eb9406..a7d2aed71 100644 --- a/java/test/org/broadinstitute/sting/utils/threading/GenomeLocProcessingTrackerUnitTest.java +++ b/java/test/org/broadinstitute/sting/utils/threading/GenomeLocProcessingTrackerUnitTest.java @@ -212,6 +212,11 @@ public class GenomeLocProcessingTrackerUnitTest extends BaseTest { return null; } + private static final void assertAllThreadsFinished(List> futures) { + for ( Future f : futures ) + Assert.assertTrue(f.isDone(), "Thread never finished running"); + } + @Test(dataProvider = "data", enabled = true) public void testThreadedProcesses(TestTarget test) { // start up 3 threads @@ -224,15 +229,17 @@ public class GenomeLocProcessingTrackerUnitTest extends BaseTest { ExecutorService exec = java.util.concurrent.Executors.newFixedThreadPool(threads.size()); try { - List> results = exec.invokeAll(threads, 60, TimeUnit.SECONDS); + List> results = exec.invokeAll(threads, 300, TimeUnit.SECONDS); GenomeLocProcessingTracker tracker = test.getTracker(); List shards = test.getShards(); for ( TestThread thread : threads ) logger.warn(String.format("TestThread ran %d jobs", thread.ran.size())); + assertAllThreadsFinished(results); + // we ran everything - Assert.assertEquals(tracker.getProcessingLocs().size(), shards.size()); + Assert.assertEquals(tracker.getProcessingLocs().size(), shards.size(), "Not all shards were run"); for ( GenomeLoc shard : shards ) { Assert.assertTrue(tracker.locIsOwned(shard), "Unowned shard");