--- jsr166/src/test/tck/JSR166TestCase.java 2003/10/25 16:02:13 1.7 +++ jsr166/src/test/tck/JSR166TestCase.java 2004/01/09 15:39:10 1.18 @@ -1,8 +1,9 @@ /* - * Written by members of JCP JSR-166 Expert Group and released to the - * public domain. Use, modify, and redistribute this code in any way - * without acknowledgement. Other contributors include Andrew Wright, - * Jeffrey Hayes, Pat Fischer, Mike Judd. + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + * Other contributors include Andrew Wright, Jeffrey Hayes, + * Pat Fisher, Mike Judd. */ import junit.framework.*; @@ -22,14 +23,14 @@ import java.security.*; *
    * *
  1. All assertions in code running in generated threads must use - * the forms {@link threadFail} , {@link threadAssertTrue} {@link - * threadAssertEquals}, or {@link threadAssertNull}, (not + * the forms {@link #threadFail} , {@link #threadAssertTrue} {@link + * #threadAssertEquals}, or {@link #threadAssertNull}, (not * fail, assertTrue, etc.) It is OK (but not * particularly recommended) for other code to use these forms too. * Only the most typically used JUnit assertion methods are defined * this way, but enough to live with.
  2. * - *
  3. If you override {@link setUp} or {@link tearDown}, make sure + *
  4. If you override {@link #setUp} or {@link #tearDown}, make sure * to invoke super.setUp and super.tearDown within * them. These methods are used to clear and check for thread * assertion failures.
  5. @@ -89,7 +90,12 @@ public class JSR166TestCase extends Test * Runs all JSR166 unit tests using junit.textui.TestRunner */ public static void main (String[] args) { - junit.textui.TestRunner.run (suite()); + int iters = 1; + if (args.length > 0) + iters = Integer.parseInt(args[0]); + Test s = suite(); + for (int i = 0; i < iters; ++i) + junit.textui.TestRunner.run (s); } /** @@ -98,6 +104,8 @@ public class JSR166TestCase extends Test public static Test suite ( ) { TestSuite suite = new TestSuite("JSR166 Unit Tests"); + suite.addTest(new TestSuite(AbstractExecutorServiceTest.class)); + suite.addTest(new TestSuite(AbstractQueuedSynchronizerTest.class)); suite.addTest(new TestSuite(ArrayBlockingQueueTest.class)); suite.addTest(new TestSuite(AtomicBooleanTest.class)); suite.addTest(new TestSuite(AtomicIntegerArrayTest.class)); @@ -111,7 +119,6 @@ public class JSR166TestCase extends Test suite.addTest(new TestSuite(AtomicReferenceFieldUpdaterTest.class)); suite.addTest(new TestSuite(AtomicReferenceTest.class)); suite.addTest(new TestSuite(AtomicStampedReferenceTest.class)); - suite.addTest(new TestSuite(CancellableTaskTest.class)); suite.addTest(new TestSuite(ConcurrentHashMapTest.class)); suite.addTest(new TestSuite(ConcurrentLinkedQueueTest.class)); suite.addTest(new TestSuite(CopyOnWriteArrayListTest.class)); @@ -121,14 +128,13 @@ public class JSR166TestCase extends Test suite.addTest(new TestSuite(DelayQueueTest.class)); suite.addTest(new TestSuite(ExchangerTest.class)); suite.addTest(new TestSuite(ExecutorsTest.class)); - suite.addTest(new TestSuite(FairSemaphoreTest.class)); + suite.addTest(new TestSuite(ExecutorCompletionServiceTest.class)); suite.addTest(new TestSuite(FutureTaskTest.class)); suite.addTest(new TestSuite(LinkedBlockingQueueTest.class)); suite.addTest(new TestSuite(LinkedListTest.class)); suite.addTest(new TestSuite(LockSupportTest.class)); suite.addTest(new TestSuite(PriorityBlockingQueueTest.class)); suite.addTest(new TestSuite(PriorityQueueTest.class)); - suite.addTest(new TestSuite(PrivilegedFutureTaskTest.class)); suite.addTest(new TestSuite(ReentrantLockTest.class)); suite.addTest(new TestSuite(ReentrantReadWriteLockTest.class)); suite.addTest(new TestSuite(ScheduledExecutorTest.class)); @@ -152,10 +158,10 @@ public class JSR166TestCase extends Test /** * Return the shortest timed delay. This could - * be reimplmented to use for example a Property. + * be reimplemented to use for example a Property. */ protected long getShortDelay() { - return 100; + return 10; } @@ -354,6 +360,20 @@ public class JSR166TestCase extends Test public Object call() { return Boolean.TRUE; } } + static final String TEST_STRING = "a test string"; + + static class StringTask implements Callable { + public String call() { return TEST_STRING; } + } + + static class NPETask implements Callable { + public String call() { throw new NullPointerException(); } + } + + static class CallableOne implements Callable { + public Integer call() { return one; } + } + class ShortRunnable implements Runnable { public void run() { try { @@ -453,6 +473,16 @@ public class JSR166TestCase extends Test } } + class LongPossiblyInterruptedRunnable implements Runnable { + public void run() { + try { + Thread.sleep(LONG_DELAY_MS); + } + catch(InterruptedException success) { + } + } + } + /** * For use as ThreadFactory in constructors */ @@ -514,6 +544,7 @@ public class JSR166TestCase extends Test } } + /** * For use as RejectedExecutionHandler in constructors */