Fixed a race condition: start the monitor before creating files.

This commit is contained in:
akwizgran
2011-10-05 14:09:43 +01:00
parent a773bbc320
commit 2ce8d2a418
2 changed files with 5 additions and 4 deletions

View File

@@ -13,6 +13,7 @@
<path refid='test-classes'/>
<path refid='util-classes'/>
</classpath>
<jvmarg value='-Djava.library.path=../lib'/>
<test name='net.sf.briar.LockFairnessTest'/>
<test name='net.sf.briar.ProtocolIntegrationTest'/>
<test name='net.sf.briar.crypto.CounterModeTest'/>

View File

@@ -36,15 +36,14 @@ public class UnixRemovableDriveMonitorTest extends TestCase {
final CountDownLatch latch = new CountDownLatch(1);
final List<File> detected = new ArrayList<File>();
// Create a monitor that will wait for two files before stopping
final RemovableDriveMonitor monitor = createMonitor(testDir);
monitor.start();
new Thread() {
@Override
public void run() {
try {
RemovableDriveMonitor monitor = createMonitor(testDir);
monitor.start();
detected.add(monitor.waitForInsertion());
detected.add(monitor.waitForInsertion());
monitor.stop();
latch.countDown();
} catch(IOException e) {
fail();
@@ -57,7 +56,8 @@ public class UnixRemovableDriveMonitorTest extends TestCase {
assertTrue(file1.createNewFile());
assertTrue(file2.createNewFile());
// Wait for the monitor to detect the files
latch.await(1, TimeUnit.SECONDS);
assertTrue(latch.await(2, TimeUnit.SECONDS));
monitor.stop();
// Check that both files were detected
assertEquals(2, detected.size());
assertTrue(detected.contains(file1));