X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fconcurrency%2FAbstractLockTestCase.java;h=51686e42536ce86b3a0e223a7273639124a966d6;hb=4a575582a5c2999bd816b197d9cf274b4b3ddcd7;hp=39cec11ad7b6b052244dcb159c918931fe248fa9;hpb=32a62ca2c752e33a7873ac868a7a1f289caedcd4;p=utils diff --git a/support/general/src/test/java/org/wamblee/concurrency/AbstractLockTestCase.java b/support/general/src/test/java/org/wamblee/concurrency/AbstractLockTestCase.java index 39cec11a..51686e42 100644 --- a/support/general/src/test/java/org/wamblee/concurrency/AbstractLockTestCase.java +++ b/support/general/src/test/java/org/wamblee/concurrency/AbstractLockTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2005 the original author or authors. + * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,30 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.wamblee.concurrency; +import junit.framework.TestCase; + import org.wamblee.test.EventTracker; import org.wamblee.test.TimingUtils; -import junit.framework.TestCase; - /** * Tests for the JVMLock. - * + * * @author Erik Brakkee */ public abstract class AbstractLockTestCase extends TestCase { - protected static final int SLEEP_TIME = 1000; - protected static final String STARTED = "started"; - protected static final String ACQUIRED = "acquired"; - protected static final String RELEASED = "released"; - - private EventTracker _tracker; + private EventTracker tracker; /* * (non-Javadoc) @@ -45,19 +39,19 @@ public abstract class AbstractLockTestCase extends TestCase { */ @Override protected void setUp() throws Exception { - _tracker = new EventTracker(); + tracker = new EventTracker(); } - - protected EventTracker getTracker() { - return _tracker; + + protected EventTracker getTracker() { + return tracker; } /** - * Must be implemented to generate the events - * {@link #STARTED}, {@link #ACQUIRED}, and {@link #RELEASED} in - * that order. The lock should be acquired for - * the time specified by {@link #SLEEP_TIME}. - * @return Thread which does the work. + * Must be implemented to generate the events {@link #STARTED}, + * {@link #ACQUIRED}, and {@link #RELEASED} in that order. The lock should + * be acquired for the time specified by {@link #SLEEP_TIME}. + * + * @return Thread which does the work. */ protected abstract Thread runThread(); @@ -67,25 +61,31 @@ public abstract class AbstractLockTestCase extends TestCase { public void testLock() throws InterruptedException { Thread t1 = runThread(); Thread t2 = runThread(); - TimingUtils.sleep(SLEEP_TIME / 10); // give threads a chance to start + TimingUtils.sleep(SLEEP_TIME / 2); // give threads a chance to start // up. - assertEquals(2, _tracker.getEventCount(STARTED)); // both threads + + assertEquals(2, tracker.getEventCount(STARTED)); // both threads // should have // started. - assertEquals(1, _tracker.getEventCount(ACQUIRED)); // one thread has - // acquired the - // lock. + + 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. + 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. + assertEquals(2, tracker.getEventCount(RELEASED)); // both threads + // should be + // finished. + t1.join(); t2.join(); }