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

Comparing jsr166/src/test/tck/ForkJoinTaskTest.java (file contents):
Revision 1.34 by jsr166, Mon Jun 3 18:20:05 2013 UTC vs.
Revision 1.43 by dl, Mon Oct 5 23:32:07 2015 UTC

# Line 3 | Line 3
3   * Expert Group and released to the public domain, as explained at
4   * http://creativecommons.org/publicdomain/zero/1.0/
5   */
6 < import java.util.concurrent.ExecutionException;
6 >
7 > import static java.util.concurrent.TimeUnit.MILLISECONDS;
8 > import static java.util.concurrent.TimeUnit.SECONDS;
9 >
10 > import java.util.HashSet;
11   import java.util.concurrent.CancellationException;
12 + import java.util.concurrent.ExecutionException;
13   import java.util.concurrent.ForkJoinPool;
14   import java.util.concurrent.ForkJoinTask;
10 import java.util.concurrent.ForkJoinWorkerThread;
15   import java.util.concurrent.RecursiveAction;
12 import java.util.concurrent.TimeUnit;
16   import java.util.concurrent.TimeoutException;
17   import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
18 < import static java.util.concurrent.TimeUnit.MILLISECONDS;
19 < import static java.util.concurrent.TimeUnit.SECONDS;
20 < import java.util.HashSet;
18 < import junit.framework.*;
18 >
19 > import junit.framework.Test;
20 > import junit.framework.TestSuite;
21  
22   public class ForkJoinTaskTest extends JSR166TestCase {
23  
24      public static void main(String[] args) {
25 <        junit.textui.TestRunner.run(suite());
25 >        main(suite(), args);
26      }
27  
28      public static Test suite() {
# Line 46 | Line 48 | public class ForkJoinTaskTest extends JS
48      }
49  
50      private void testInvokeOnPool(ForkJoinPool pool, RecursiveAction a) {
51 <        try {
51 >        try (PoolCleaner cleaner = cleaner(pool)) {
52              assertFalse(a.isDone());
53              assertFalse(a.isCompletedNormally());
54              assertFalse(a.isCompletedAbnormally());
# Line 62 | Line 64 | public class ForkJoinTaskTest extends JS
64              assertFalse(a.isCancelled());
65              assertNull(a.getException());
66              assertNull(a.getRawResult());
65        } finally {
66            joinPool(pool);
67          }
68      }
69  
# Line 216 | Line 216 | public class ForkJoinTaskTest extends JS
216              AtomicIntegerFieldUpdater.newUpdater(BinaryAsyncAction.class,
217                                                   "controlState");
218  
219 <        private BinaryAsyncAction parent;
219 >        private volatile BinaryAsyncAction parent;
220  
221 <        private BinaryAsyncAction sibling;
221 >        private volatile BinaryAsyncAction sibling;
222  
223          protected BinaryAsyncAction() {
224          }
# Line 918 | Line 918 | public class ForkJoinTaskTest extends JS
918      }
919  
920      /**
921 <     * invokeAll(collection)  throws exception if any task does
921 >     * invokeAll(collection) throws exception if any task does
922       */
923      public void testAbnormalInvokeAllCollection() {
924          RecursiveAction a = new CheckedRecursiveAction() {
# Line 1585 | Line 1585 | public class ForkJoinTaskTest extends JS
1585      }
1586  
1587      /**
1588 <     * invokeAll(collection)  throws exception if any task does
1588 >     * invokeAll(collection) throws exception if any task does
1589       */
1590      public void testAbnormalInvokeAllCollectionSingleton() {
1591          RecursiveAction a = new CheckedRecursiveAction() {
# Line 1607 | Line 1607 | public class ForkJoinTaskTest extends JS
1607          testInvokeOnPool(singletonPool(), a);
1608      }
1609  
1610 +    /**
1611 +     * ForkJoinTask.quietlyComplete returns when task completes
1612 +     * normally without setting a value. The most recent value
1613 +     * established by setRawResult(V) (or null by default) is returned
1614 +     * from invoke.
1615 +     */
1616 +    public void testQuietlyComplete() {
1617 +        RecursiveAction a = new CheckedRecursiveAction() {
1618 +                protected void realCompute() {
1619 +                    AsyncFib f = new AsyncFib(8);
1620 +                    f.quietlyComplete();
1621 +                    assertEquals(8, f.number);
1622 +                    checkCompletedNormally(f);
1623 +                }};
1624 +        testInvokeOnPool(mainPool(), a);
1625 +    }
1626 +
1627   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines