ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/JSR166TestCase.java
(Generate patch)

Comparing jsr166/src/test/tck/JSR166TestCase.java (file contents):
Revision 1.54 by jsr166, Fri Sep 17 00:52:36 2010 UTC vs.
Revision 1.58 by jsr166, Wed Oct 6 02:11:57 2010 UTC

# Line 105 | Line 105 | public class JSR166TestCase extends Test
105              Policy.setPolicy(permissivePolicy());
106              System.setSecurityManager(new SecurityManager());
107          }
108 <        int iters = 1;
109 <        if (args.length > 0)
110 <            iters = Integer.parseInt(args[0]);
108 >        int iters = (args.length == 0) ? 1 : Integer.parseInt(args[0]);
109 >
110          Test s = suite();
111          for (int i = 0; i < iters; ++i) {
112              junit.textui.TestRunner.run(s);
# Line 123 | Line 122 | public class JSR166TestCase extends Test
122      public static Test suite() {
123          TestSuite suite = new TestSuite("JSR166 Unit Tests");
124  
125 <        suite.addTest(new TestSuite(ForkJoinPoolTest.class));
126 <        suite.addTest(new TestSuite(ForkJoinTaskTest.class));
127 <        suite.addTest(new TestSuite(RecursiveActionTest.class));
128 <        suite.addTest(new TestSuite(RecursiveTaskTest.class));
129 <        suite.addTest(new TestSuite(LinkedTransferQueueTest.class));
130 <        suite.addTest(new TestSuite(PhaserTest.class));
131 <        suite.addTest(new TestSuite(ThreadLocalRandomTest.class));
132 <        suite.addTest(new TestSuite(AbstractExecutorServiceTest.class));
133 <        suite.addTest(new TestSuite(AbstractQueueTest.class));
134 <        suite.addTest(new TestSuite(AbstractQueuedSynchronizerTest.class));
135 <        suite.addTest(new TestSuite(AbstractQueuedLongSynchronizerTest.class));
136 <        suite.addTest(new TestSuite(ArrayBlockingQueueTest.class));
137 <        suite.addTest(new TestSuite(ArrayDequeTest.class));
138 <        suite.addTest(new TestSuite(AtomicBooleanTest.class));
139 <        suite.addTest(new TestSuite(AtomicIntegerArrayTest.class));
140 <        suite.addTest(new TestSuite(AtomicIntegerFieldUpdaterTest.class));
141 <        suite.addTest(new TestSuite(AtomicIntegerTest.class));
142 <        suite.addTest(new TestSuite(AtomicLongArrayTest.class));
143 <        suite.addTest(new TestSuite(AtomicLongFieldUpdaterTest.class));
144 <        suite.addTest(new TestSuite(AtomicLongTest.class));
145 <        suite.addTest(new TestSuite(AtomicMarkableReferenceTest.class));
146 <        suite.addTest(new TestSuite(AtomicReferenceArrayTest.class));
147 <        suite.addTest(new TestSuite(AtomicReferenceFieldUpdaterTest.class));
148 <        suite.addTest(new TestSuite(AtomicReferenceTest.class));
149 <        suite.addTest(new TestSuite(AtomicStampedReferenceTest.class));
150 <        suite.addTest(new TestSuite(ConcurrentHashMapTest.class));
151 <        suite.addTest(new TestSuite(ConcurrentLinkedDequeTest.class));
152 <        suite.addTest(new TestSuite(ConcurrentLinkedQueueTest.class));
153 <        suite.addTest(new TestSuite(ConcurrentSkipListMapTest.class));
154 <        suite.addTest(new TestSuite(ConcurrentSkipListSubMapTest.class));
155 <        suite.addTest(new TestSuite(ConcurrentSkipListSetTest.class));
156 <        suite.addTest(new TestSuite(ConcurrentSkipListSubSetTest.class));
157 <        suite.addTest(new TestSuite(CopyOnWriteArrayListTest.class));
158 <        suite.addTest(new TestSuite(CopyOnWriteArraySetTest.class));
159 <        suite.addTest(new TestSuite(CountDownLatchTest.class));
160 <        suite.addTest(new TestSuite(CyclicBarrierTest.class));
161 <        suite.addTest(new TestSuite(DelayQueueTest.class));
162 <        suite.addTest(new TestSuite(EntryTest.class));
163 <        suite.addTest(new TestSuite(ExchangerTest.class));
164 <        suite.addTest(new TestSuite(ExecutorsTest.class));
165 <        suite.addTest(new TestSuite(ExecutorCompletionServiceTest.class));
166 <        suite.addTest(new TestSuite(FutureTaskTest.class));
167 <        suite.addTest(new TestSuite(LinkedBlockingDequeTest.class));
168 <        suite.addTest(new TestSuite(LinkedBlockingQueueTest.class));
169 <        suite.addTest(new TestSuite(LinkedListTest.class));
170 <        suite.addTest(new TestSuite(LockSupportTest.class));
171 <        suite.addTest(new TestSuite(PriorityBlockingQueueTest.class));
172 <        suite.addTest(new TestSuite(PriorityQueueTest.class));
173 <        suite.addTest(new TestSuite(ReentrantLockTest.class));
174 <        suite.addTest(new TestSuite(ReentrantReadWriteLockTest.class));
175 <        suite.addTest(new TestSuite(ScheduledExecutorTest.class));
176 <        suite.addTest(new TestSuite(ScheduledExecutorSubclassTest.class));
177 <        suite.addTest(new TestSuite(SemaphoreTest.class));
178 <        suite.addTest(new TestSuite(SynchronousQueueTest.class));
179 <        suite.addTest(new TestSuite(SystemTest.class));
180 <        suite.addTest(new TestSuite(ThreadLocalTest.class));
181 <        suite.addTest(new TestSuite(ThreadPoolExecutorTest.class));
182 <        suite.addTest(new TestSuite(ThreadPoolExecutorSubclassTest.class));
183 <        suite.addTest(new TestSuite(ThreadTest.class));
184 <        suite.addTest(new TestSuite(TimeUnitTest.class));
185 <        suite.addTest(new TestSuite(TreeMapTest.class));
186 <        suite.addTest(new TestSuite(TreeSetTest.class));
187 <        suite.addTest(new TestSuite(TreeSubMapTest.class));
188 <        suite.addTest(new TestSuite(TreeSubSetTest.class));
125 >        suite.addTest(ForkJoinPoolTest.suite());
126 >        suite.addTest(ForkJoinTaskTest.suite());
127 >        suite.addTest(RecursiveActionTest.suite());
128 >        suite.addTest(RecursiveTaskTest.suite());
129 >        suite.addTest(LinkedTransferQueueTest.suite());
130 >        suite.addTest(PhaserTest.suite());
131 >        suite.addTest(ThreadLocalRandomTest.suite());
132 >        suite.addTest(AbstractExecutorServiceTest.suite());
133 >        suite.addTest(AbstractQueueTest.suite());
134 >        suite.addTest(AbstractQueuedSynchronizerTest.suite());
135 >        suite.addTest(AbstractQueuedLongSynchronizerTest.suite());
136 >        suite.addTest(ArrayBlockingQueueTest.suite());
137 >        suite.addTest(ArrayDequeTest.suite());
138 >        suite.addTest(AtomicBooleanTest.suite());
139 >        suite.addTest(AtomicIntegerArrayTest.suite());
140 >        suite.addTest(AtomicIntegerFieldUpdaterTest.suite());
141 >        suite.addTest(AtomicIntegerTest.suite());
142 >        suite.addTest(AtomicLongArrayTest.suite());
143 >        suite.addTest(AtomicLongFieldUpdaterTest.suite());
144 >        suite.addTest(AtomicLongTest.suite());
145 >        suite.addTest(AtomicMarkableReferenceTest.suite());
146 >        suite.addTest(AtomicReferenceArrayTest.suite());
147 >        suite.addTest(AtomicReferenceFieldUpdaterTest.suite());
148 >        suite.addTest(AtomicReferenceTest.suite());
149 >        suite.addTest(AtomicStampedReferenceTest.suite());
150 >        suite.addTest(ConcurrentHashMapTest.suite());
151 >        suite.addTest(ConcurrentLinkedDequeTest.suite());
152 >        suite.addTest(ConcurrentLinkedQueueTest.suite());
153 >        suite.addTest(ConcurrentSkipListMapTest.suite());
154 >        suite.addTest(ConcurrentSkipListSubMapTest.suite());
155 >        suite.addTest(ConcurrentSkipListSetTest.suite());
156 >        suite.addTest(ConcurrentSkipListSubSetTest.suite());
157 >        suite.addTest(CopyOnWriteArrayListTest.suite());
158 >        suite.addTest(CopyOnWriteArraySetTest.suite());
159 >        suite.addTest(CountDownLatchTest.suite());
160 >        suite.addTest(CyclicBarrierTest.suite());
161 >        suite.addTest(DelayQueueTest.suite());
162 >        suite.addTest(EntryTest.suite());
163 >        suite.addTest(ExchangerTest.suite());
164 >        suite.addTest(ExecutorsTest.suite());
165 >        suite.addTest(ExecutorCompletionServiceTest.suite());
166 >        suite.addTest(FutureTaskTest.suite());
167 >        suite.addTest(LinkedBlockingDequeTest.suite());
168 >        suite.addTest(LinkedBlockingQueueTest.suite());
169 >        suite.addTest(LinkedListTest.suite());
170 >        suite.addTest(LockSupportTest.suite());
171 >        suite.addTest(PriorityBlockingQueueTest.suite());
172 >        suite.addTest(PriorityQueueTest.suite());
173 >        suite.addTest(ReentrantLockTest.suite());
174 >        suite.addTest(ReentrantReadWriteLockTest.suite());
175 >        suite.addTest(ScheduledExecutorTest.suite());
176 >        suite.addTest(ScheduledExecutorSubclassTest.suite());
177 >        suite.addTest(SemaphoreTest.suite());
178 >        suite.addTest(SynchronousQueueTest.suite());
179 >        suite.addTest(SystemTest.suite());
180 >        suite.addTest(ThreadLocalTest.suite());
181 >        suite.addTest(ThreadPoolExecutorTest.suite());
182 >        suite.addTest(ThreadPoolExecutorSubclassTest.suite());
183 >        suite.addTest(ThreadTest.suite());
184 >        suite.addTest(TimeUnitTest.suite());
185 >        suite.addTest(TreeMapTest.suite());
186 >        suite.addTest(TreeSetTest.suite());
187 >        suite.addTest(TreeSubMapTest.suite());
188 >        suite.addTest(TreeSubSetTest.suite());
189  
190          return suite;
191      }
# Line 251 | Line 250 | public class JSR166TestCase extends Test
250                  throw (RuntimeException) t;
251              else if (t instanceof Exception)
252                  throw (Exception) t;
253 <            else
254 <                throw new AssertionError(t);
253 >            else {
254 >                AssertionFailedError afe =
255 >                    new AssertionFailedError(t.toString());
256 >                afe.initCause(t);
257 >                throw afe;
258 >            }
259          }
260      }
261  
262      /**
263       * Just like fail(reason), but additionally recording (using
264 <     * threadRecordFailure) any AssertionError thrown, so that the current
265 <     * testcase will fail.
264 >     * threadRecordFailure) any AssertionFailedError thrown, so that
265 >     * the current testcase will fail.
266       */
267      public void threadFail(String reason) {
268          try {
269              fail(reason);
270 <        } catch (Throwable t) {
270 >        } catch (AssertionFailedError t) {
271              threadRecordFailure(t);
272              fail(reason);
273          }
# Line 272 | Line 275 | public class JSR166TestCase extends Test
275  
276      /**
277       * Just like assertTrue(b), but additionally recording (using
278 <     * threadRecordFailure) any AssertionError thrown, so that the current
279 <     * testcase will fail.
278 >     * threadRecordFailure) any AssertionFailedError thrown, so that
279 >     * the current testcase will fail.
280       */
281      public void threadAssertTrue(boolean b) {
282          try {
283              assertTrue(b);
284 <        } catch (AssertionError t) {
284 >        } catch (AssertionFailedError t) {
285              threadRecordFailure(t);
286              throw t;
287          }
# Line 286 | Line 289 | public class JSR166TestCase extends Test
289  
290      /**
291       * Just like assertFalse(b), but additionally recording (using
292 <     * threadRecordFailure) any AssertionError thrown, so that the
293 <     * current testcase will fail.
292 >     * threadRecordFailure) any AssertionFailedError thrown, so that
293 >     * the current testcase will fail.
294       */
295      public void threadAssertFalse(boolean b) {
296          try {
297              assertFalse(b);
298 <        } catch (AssertionError t) {
298 >        } catch (AssertionFailedError t) {
299              threadRecordFailure(t);
300              throw t;
301          }
# Line 300 | Line 303 | public class JSR166TestCase extends Test
303  
304      /**
305       * Just like assertNull(x), but additionally recording (using
306 <     * threadRecordFailure) any AssertionError thrown, so that the
307 <     * current testcase will fail.
306 >     * threadRecordFailure) any AssertionFailedError thrown, so that
307 >     * the current testcase will fail.
308       */
309      public void threadAssertNull(Object x) {
310          try {
311              assertNull(x);
312 <        } catch (AssertionError t) {
312 >        } catch (AssertionFailedError t) {
313              threadRecordFailure(t);
314              throw t;
315          }
# Line 314 | Line 317 | public class JSR166TestCase extends Test
317  
318      /**
319       * Just like assertEquals(x, y), but additionally recording (using
320 <     * threadRecordFailure) any AssertionError thrown, so that the
321 <     * current testcase will fail.
320 >     * threadRecordFailure) any AssertionFailedError thrown, so that
321 >     * the current testcase will fail.
322       */
323      public void threadAssertEquals(long x, long y) {
324          try {
325              assertEquals(x, y);
326 <        } catch (AssertionError t) {
326 >        } catch (AssertionFailedError t) {
327              threadRecordFailure(t);
328              throw t;
329          }
# Line 328 | Line 331 | public class JSR166TestCase extends Test
331  
332      /**
333       * Just like assertEquals(x, y), but additionally recording (using
334 <     * threadRecordFailure) any AssertionError thrown, so that the
335 <     * current testcase will fail.
334 >     * threadRecordFailure) any AssertionFailedError thrown, so that
335 >     * the current testcase will fail.
336       */
337      public void threadAssertEquals(Object x, Object y) {
338          try {
339              assertEquals(x, y);
340 <        } catch (AssertionError t) {
340 >        } catch (AssertionFailedError t) {
341              threadRecordFailure(t);
342              throw t;
343 +        } catch (Throwable t) {
344 +            threadUnexpectedException(t);
345          }
346      }
347  
348      /**
349       * Just like assertSame(x, y), but additionally recording (using
350 <     * threadRecordFailure) any AssertionError thrown, so that the
351 <     * current testcase will fail.
350 >     * threadRecordFailure) any AssertionFailedError thrown, so that
351 >     * the current testcase will fail.
352       */
353      public void threadAssertSame(Object x, Object y) {
354          try {
355              assertSame(x, y);
356 <        } catch (AssertionError t) {
356 >        } catch (AssertionFailedError t) {
357              threadRecordFailure(t);
358              throw t;
359          }
# Line 369 | Line 374 | public class JSR166TestCase extends Test
374      }
375  
376      /**
377 <     * Calls threadFail with message "Unexpected exception" + ex.
377 >     * Records the given exception using {@link #threadRecordFailure},
378 >     * then rethrows the exception, wrapping it in an
379 >     * AssertionFailedError if necessary.
380       */
381      public void threadUnexpectedException(Throwable t) {
382          threadRecordFailure(t);
383          t.printStackTrace();
377        // Rethrow, wrapping in an AssertionError if necessary
384          if (t instanceof RuntimeException)
385              throw (RuntimeException) t;
386          else if (t instanceof Error)
387              throw (Error) t;
388          else {
389 <            AssertionError ae = new AssertionError("unexpected exception: " + t);
389 >            AssertionFailedError afe =
390 >                new AssertionFailedError("unexpected exception: " + t);
391              t.initCause(t);
392 <            throw ae;
393 <        }            
392 >            throw afe;
393 >        }
394      }
395  
396      /**
# Line 417 | Line 424 | public class JSR166TestCase extends Test
424      }
425  
426      /**
420     * Fails with message "Unexpected exception: " + ex.
421     */
422    public void unexpectedException(Throwable ex) {
423        ex.printStackTrace();
424        fail("Unexpected exception: " + ex);
425    }
426
427
428    /**
427       * The number of elements to place in collections, arrays, etc.
428       */
429      public static final int SIZE = 20;
# Line 546 | Line 544 | public class JSR166TestCase extends Test
544      }
545  
546      /**
547 <     * Returns a new started Thread running the given runnable.
547 >     * Returns a new started daemon Thread running the given runnable.
548       */
549      Thread newStartedThread(Runnable runnable) {
550          Thread t = new Thread(runnable);
551 +        t.setDaemon(true);
552          t.start();
553          return t;
554      }
# Line 717 | Line 716 | public class JSR166TestCase extends Test
716          }
717      }
718  
720    public class SmallInterruptedRunnable extends CheckedInterruptedRunnable {
721        protected void realRun() throws InterruptedException {
722            Thread.sleep(SMALL_DELAY_MS);
723        }
724    }
725
719      public class MediumRunnable extends CheckedRunnable {
720          protected void realRun() throws Throwable {
721              Thread.sleep(MEDIUM_DELAY_MS);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines