(no commit message)
[utils] / support / test / org / wamblee / concurrency / JvmLockTest.java
index 7d12b381483fda61bf48d1cf8b9c633567d02d66..9b08f04ab247cbd5a6b0187d5d1d72401fae2907 100644 (file)
 
 package org.wamblee.concurrency;
 
-import org.wamblee.test.EventTracker;
 import org.wamblee.test.TimingUtils;
 
-import junit.framework.TestCase;
-
 /**
  * Tests for the JVMLock.
  */
-public class JvmLockTest extends TestCase {
-
-    private static final int SLEEP_TIME = 1000;
-
-    private static final String STARTED = "started";
-
-    private static final String ACQUIRED = "acquired";
-
-    private static final String RELEASED = "released";
+public class JvmLockTest extends AbstractLockTestCase {
 
     private JvmLock _lock;
-
-    private EventTracker<String> _tracker;
-
+    
     /*
      * (non-Javadoc)
      * 
@@ -45,51 +32,22 @@ public class JvmLockTest extends TestCase {
      */
     @Override
     protected void setUp() throws Exception {
+        super.setUp();
         _lock = new JvmLock();
-        _tracker = new EventTracker<String>();
     }
 
-    private Thread runThread() {
+    protected Thread runThread() {
         Thread t = new Thread(new Runnable() {
             public void run() {
-                _tracker.eventOccurred(STARTED);
+                getTracker().eventOccurred(STARTED);
                 _lock.acquire();
-                _tracker.eventOccurred(ACQUIRED);
+                getTracker().eventOccurred(ACQUIRED);
                 TimingUtils.sleep(SLEEP_TIME);
                 _lock.release();
-                _tracker.eventOccurred(RELEASED);
+                getTracker().eventOccurred(RELEASED);
             };
         });
         t.start();
         return t;
     }
-
-    /**
-     * Tests the operation of the lock.
-     */
-    public void testLock() throws InterruptedException {
-        Thread t1 = runThread();
-        Thread t2 = runThread();
-        TimingUtils.sleep(SLEEP_TIME / 10); // give threads a chance to start
-        // up.
-        assertEquals(2, _tracker.getEventCount(STARTED)); // both threads
-        // should have
-        // started.
-        assertEquals(1, _tracker.getEventCount(ACQUIRED)); // one thread has
-                                                            // acquired the
-                                                            // lock.
-        TimingUtils.sleep(SLEEP_TIME);
-        assertEquals(2, _tracker.getEventCount(ACQUIRED)); // now the other
-                                                            // thread could also
-                                                            // acquire the lock
-        assertEquals(1, _tracker.getEventCount(RELEASED)); // and the first
-                                                            // thread has
-                                                            // released it.
-        TimingUtils.sleep(SLEEP_TIME);
-        assertEquals(2, _tracker.getEventCount(RELEASED)); // both threads
-                                                            // should be
-                                                            // finished.
-        t1.join();
-        t2.join();
-    }
 }