--- jsr166/src/test/tck/RecursiveTaskTest.java 2010/09/13 07:51:18 1.13 +++ jsr166/src/test/tck/RecursiveTaskTest.java 2010/09/13 23:23:45 1.16 @@ -5,8 +5,12 @@ */ import junit.framework.*; -import java.util.concurrent.*; -import java.util.*; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ForkJoinPool; +import java.util.concurrent.RecursiveTask; +import java.util.concurrent.TimeUnit; +import java.util.HashSet; public class RecursiveTaskTest extends JSR166TestCase { @@ -125,7 +129,7 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); Integer r = f.join(); threadAssertTrue(r == 21); threadAssertTrue(f.isDone()); @@ -143,7 +147,7 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); Integer r = f.get(); threadAssertTrue(r == 21); threadAssertTrue(f.isDone()); @@ -165,7 +169,7 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); Integer r = f.get(5L, TimeUnit.SECONDS); threadAssertTrue(r == 21); threadAssertTrue(f.isDone()); @@ -186,7 +190,7 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); f.quietlyJoin(); Integer r = f.getRawResult(); threadAssertTrue(r == 21); @@ -206,7 +210,7 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); f.helpQuiesce(); Integer r = f.getRawResult(); threadAssertTrue(r == 21); @@ -261,7 +265,7 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FailingFibTask f = new FailingFibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); Integer r = f.join(); shouldThrow(); return r; @@ -281,7 +285,7 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FailingFibTask f = new FailingFibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); Integer r = f.get(); shouldThrow(); return r; @@ -303,7 +307,7 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FailingFibTask f = new FailingFibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); Integer r = f.get(5L, TimeUnit.SECONDS); shouldThrow(); return r; @@ -324,7 +328,7 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FailingFibTask f = new FailingFibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); f.quietlyJoin(); threadAssertTrue(f.isDone()); threadAssertTrue(f.isCompletedAbnormally()); @@ -343,7 +347,7 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FibTask f = new FibTask(8); - f.cancel(true); + threadAssertTrue(f.cancel(true)); Integer r = f.invoke(); shouldThrow(); return r; @@ -363,8 +367,8 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FibTask f = new FibTask(8); - f.cancel(true); - f.fork(); + threadAssertTrue(f.cancel(true)); + threadAssertSame(f, f.fork()); Integer r = f.join(); shouldThrow(); return r; @@ -384,8 +388,8 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FibTask f = new FibTask(8); - f.cancel(true); - f.fork(); + threadAssertTrue(f.cancel(true)); + threadAssertSame(f, f.fork()); Integer r = f.get(); shouldThrow(); return r; @@ -407,8 +411,8 @@ public class RecursiveTaskTest extends J public Integer compute() { try { FibTask f = new FibTask(8); - f.cancel(true); - f.fork(); + threadAssertTrue(f.cancel(true)); + threadAssertSame(f, f.fork()); Integer r = f.get(5L, TimeUnit.SECONDS); shouldThrow(); return r; @@ -429,8 +433,8 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask f = new FibTask(8); - f.cancel(true); - f.fork(); + threadAssertTrue(f.cancel(true)); + threadAssertSame(f, f.fork()); f.quietlyJoin(); threadAssertTrue(f.isDone()); threadAssertTrue(f.isCompletedAbnormally()); @@ -465,7 +469,7 @@ public class RecursiveTaskTest extends J return NoResult; } }; - a.invoke(); + assertSame(NoResult, a.invoke()); } /** @@ -491,11 +495,11 @@ public class RecursiveTaskTest extends J return NoResult; } }; - a.invoke(); + assertSame(NoResult, a.invoke()); } /** - * setRawResult(null) succeeds + * The value set by setRawResult is returned by invoke */ public void testSetRawResult() { RecursiveTask a = new RecursiveTask() { @@ -742,9 +746,9 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(f.tryUnfork()); helpQuiesce(); threadAssertFalse(f.isDone()); @@ -763,11 +767,11 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask h = new FibTask(7); - h.fork(); + threadAssertSame(h, h.fork()); FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(getSurplusQueuedTaskCount() > 0); helpQuiesce(); return NoResult; @@ -783,11 +787,11 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(peekNextLocalTask() == f); - f.join(); + threadAssertTrue(f.join() == 21); threadAssertTrue(f.isDone()); helpQuiesce(); return NoResult; @@ -804,9 +808,9 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(pollNextLocalTask() == f); helpQuiesce(); threadAssertFalse(f.isDone()); @@ -823,9 +827,9 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(pollTask() == f); helpQuiesce(); threadAssertFalse(f.isDone()); @@ -843,11 +847,11 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(peekNextLocalTask() == g); - f.join(); + threadAssertEquals(21, (int) f.join()); helpQuiesce(); threadAssertTrue(f.isDone()); return NoResult; @@ -864,9 +868,9 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(pollNextLocalTask() == g); helpQuiesce(); threadAssertTrue(f.isDone()); @@ -885,9 +889,9 @@ public class RecursiveTaskTest extends J RecursiveTask a = new RecursiveTask() { public Integer compute() { FibTask g = new FibTask(9); - g.fork(); + threadAssertSame(g, g.fork()); FibTask f = new FibTask(8); - f.fork(); + threadAssertSame(f, f.fork()); threadAssertTrue(pollTask() == g); helpQuiesce(); threadAssertTrue(f.isDone());