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

Comparing jsr166/src/test/tck/ForkJoinPoolTest.java (file contents):
Revision 1.27 by jsr166, Fri Sep 17 01:04:10 2010 UTC vs.
Revision 1.32 by jsr166, Mon Oct 11 04:39:12 2010 UTC

# Line 233 | Line 233 | public class ForkJoinPoolTest extends JS
233       * performs its defined action
234       */
235      public void testSetUncaughtExceptionHandler() throws InterruptedException {
236 <        final CountDownLatch uncaughtExceptionHappened = new CountDownLatch(1);
236 >        final CountDownLatch uehInvoked = new CountDownLatch(1);
237          final Thread.UncaughtExceptionHandler eh =
238              new Thread.UncaughtExceptionHandler() {
239                  public void uncaughtException(Thread t, Throwable e) {
240 <                    uncaughtExceptionHappened.countDown();
240 >                    uehInvoked.countDown();
241                  }};
242          ForkJoinPool p = new ForkJoinPool(1, new FailingThreadFactory(),
243                                            eh, false);
244          try {
245              assertSame(eh, p.getUncaughtExceptionHandler());
246 <            p.execute(new FailingTask());
247 <            uncaughtExceptionHappened.await();
246 >            p.execute(new FibTask(8));
247 >            assertTrue(uehInvoked.await(MEDIUM_DELAY_MS, MILLISECONDS));
248          } finally {
249 <            //p.shutdownNow();
249 >            p.shutdownNow(); // failure might have prevented processing task
250              joinPool(p);
251          }
252      }
# Line 259 | Line 259 | public class ForkJoinPoolTest extends JS
259      public void testisQuiescent() throws InterruptedException {
260          ForkJoinPool p = new ForkJoinPool(2);
261          try {
262 +            assertTrue(p.isQuiescent());
263              p.invoke(new FibTask(20));
264              assertSame(ForkJoinPool.defaultForkJoinWorkerThreadFactory,
265                         p.getFactory());
266 <            Thread.sleep(MEDIUM_DELAY_MS);
266 >            Thread.sleep(SMALL_DELAY_MS);
267              assertTrue(p.isQuiescent());
268              assertFalse(p.getAsyncMode());
269              assertEquals(0, p.getActiveThreadCount());
# Line 315 | Line 316 | public class ForkJoinPoolTest extends JS
316          try {
317              ReentrantLock lock = new ReentrantLock();
318              ManagedLocker locker = new ManagedLocker(lock);
319 <            ForkJoinTask<Integer> f = new LockingFibTask(30, locker, lock);
319 >            ForkJoinTask<Integer> f = new LockingFibTask(20, locker, lock);
320              p.execute(f);
321 <            assertEquals(832040, (int) f.get());
321 >            assertEquals(6765, (int) f.get());
322          } finally {
323              p.shutdownNow(); // don't wait out shutdown
324          }
# Line 329 | Line 330 | public class ForkJoinPoolTest extends JS
330      public void testPollSubmission() {
331          SubFJP p = new SubFJP();
332          try {
333 <            ForkJoinTask a = p.submit(new MediumRunnable());
334 <            ForkJoinTask b = p.submit(new MediumRunnable());
335 <            ForkJoinTask c = p.submit(new MediumRunnable());
333 >            ForkJoinTask a = p.submit(new ShortRunnable());
334 >            ForkJoinTask b = p.submit(new ShortRunnable());
335 >            ForkJoinTask c = p.submit(new ShortRunnable());
336              ForkJoinTask r = p.pollSubmission();
337              assertTrue(r == a || r == b || r == c);
338              assertFalse(r.isDone());
# Line 346 | Line 347 | public class ForkJoinPoolTest extends JS
347      public void testDrainTasksTo() {
348          SubFJP p = new SubFJP();
349          try {
350 <            ForkJoinTask a = p.submit(new MediumRunnable());
351 <            ForkJoinTask b = p.submit(new MediumRunnable());
352 <            ForkJoinTask c = p.submit(new MediumRunnable());
350 >            ForkJoinTask a = p.submit(new ShortRunnable());
351 >            ForkJoinTask b = p.submit(new ShortRunnable());
352 >            ForkJoinTask c = p.submit(new ShortRunnable());
353              ArrayList<ForkJoinTask> al = new ArrayList();
354              p.drainTasksTo(al);
355              assertTrue(al.size() > 0);
# Line 370 | Line 371 | public class ForkJoinPoolTest extends JS
371      public void testExecuteRunnable() throws Throwable {
372          ExecutorService e = new ForkJoinPool(1);
373          try {
374 <            TrackedShortRunnable task = new TrackedShortRunnable();
375 <            assertFalse(task.done);
374 >            TrackedRunnable task = trackedRunnable(SHORT_DELAY_MS);
375 >            assertFalse(task.isDone());
376              Future<?> future = e.submit(task);
377              future.get();
378 <            assertTrue(task.done);
378 >            assertTrue(task.isDone());
379          } finally {
380              joinPool(e);
381          }
# Line 530 | Line 531 | public class ForkJoinPoolTest extends JS
531       */
532      public void testExecuteNullRunnable() {
533          ExecutorService e = new ForkJoinPool(1);
533        TrackedShortRunnable task = null;
534          try {
535 <            Future<?> future = e.submit(task);
535 >            Future<?> future = e.submit((Runnable) null);
536              shouldThrow();
537          } catch (NullPointerException success) {
538          } finally {
# Line 546 | Line 546 | public class ForkJoinPoolTest extends JS
546       */
547      public void testSubmitNullCallable() {
548          ExecutorService e = new ForkJoinPool(1);
549        StringTask t = null;
549          try {
550 <            Future<String> future = e.submit(t);
550 >            Future<String> future = e.submit((Callable) null);
551              shouldThrow();
552          } catch (NullPointerException success) {
553          } finally {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines