228 |
|
* returns value; |
229 |
|
*/ |
230 |
|
public void testInvoke() { |
231 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
231 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
232 |
|
public Integer realCompute() { |
233 |
|
FibTask f = new FibTask(8); |
234 |
|
Integer r = f.invoke(); |
245 |
|
* completed tasks |
246 |
|
*/ |
247 |
|
public void testQuietlyInvoke() { |
248 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
248 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
249 |
|
public Integer realCompute() { |
250 |
|
FibTask f = new FibTask(8); |
251 |
|
f.quietlyInvoke(); |
259 |
|
* join of a forked task returns when task completes |
260 |
|
*/ |
261 |
|
public void testForkJoin() { |
262 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
262 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
263 |
|
public Integer realCompute() { |
264 |
|
FibTask f = new FibTask(8); |
265 |
|
assertSame(f, f.fork()); |
275 |
|
* get of a forked task returns when task completes |
276 |
|
*/ |
277 |
|
public void testForkGet() { |
278 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
278 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
279 |
|
public Integer realCompute() throws Exception { |
280 |
|
FibTask f = new FibTask(8); |
281 |
|
assertSame(f, f.fork()); |
291 |
|
* timed get of a forked task returns when task completes |
292 |
|
*/ |
293 |
|
public void testForkTimedGet() { |
294 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
294 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
295 |
|
public Integer realCompute() throws Exception { |
296 |
|
FibTask f = new FibTask(8); |
297 |
|
assertSame(f, f.fork()); |
307 |
|
* quietlyJoin of a forked task returns when task completes |
308 |
|
*/ |
309 |
|
public void testForkQuietlyJoin() { |
310 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
310 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
311 |
|
public Integer realCompute() { |
312 |
|
FibTask f = new FibTask(8); |
313 |
|
assertSame(f, f.fork()); |
325 |
|
* getQueuedTaskCount returns 0 when quiescent |
326 |
|
*/ |
327 |
|
public void testForkHelpQuiesce() { |
328 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
328 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
329 |
|
public Integer realCompute() { |
330 |
|
FibTask f = new FibTask(8); |
331 |
|
assertSame(f, f.fork()); |
343 |
|
* invoke task throws exception when task completes abnormally |
344 |
|
*/ |
345 |
|
public void testAbnormalInvoke() { |
346 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
346 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
347 |
|
public Integer realCompute() { |
348 |
|
FailingFibTask f = new FailingFibTask(8); |
349 |
|
try { |
361 |
|
* quietlyInvoke task returns when task completes abnormally |
362 |
|
*/ |
363 |
|
public void testAbnormalQuietlyInvoke() { |
364 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
364 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
365 |
|
public Integer realCompute() { |
366 |
|
FailingFibTask f = new FailingFibTask(8); |
367 |
|
f.quietlyInvoke(); |
376 |
|
* join of a forked task throws exception when task completes abnormally |
377 |
|
*/ |
378 |
|
public void testAbnormalForkJoin() { |
379 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
379 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
380 |
|
public Integer realCompute() { |
381 |
|
FailingFibTask f = new FailingFibTask(8); |
382 |
|
assertSame(f, f.fork()); |
395 |
|
* get of a forked task throws exception when task completes abnormally |
396 |
|
*/ |
397 |
|
public void testAbnormalForkGet() { |
398 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
398 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
399 |
|
public Integer realCompute() throws Exception { |
400 |
|
FailingFibTask f = new FailingFibTask(8); |
401 |
|
assertSame(f, f.fork()); |
416 |
|
* timed get of a forked task throws exception when task completes abnormally |
417 |
|
*/ |
418 |
|
public void testAbnormalForkTimedGet() { |
419 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
419 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
420 |
|
public Integer realCompute() throws Exception { |
421 |
|
FailingFibTask f = new FailingFibTask(8); |
422 |
|
assertSame(f, f.fork()); |
437 |
|
* quietlyJoin of a forked task returns when task completes abnormally |
438 |
|
*/ |
439 |
|
public void testAbnormalForkQuietlyJoin() { |
440 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
440 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
441 |
|
public Integer realCompute() { |
442 |
|
FailingFibTask f = new FailingFibTask(8); |
443 |
|
assertSame(f, f.fork()); |
453 |
|
* invoke task throws exception when task cancelled |
454 |
|
*/ |
455 |
|
public void testCancelledInvoke() { |
456 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
456 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
457 |
|
public Integer realCompute() { |
458 |
|
FibTask f = new FibTask(8); |
459 |
|
assertTrue(f.cancel(true)); |
472 |
|
* join of a forked task throws exception when task cancelled |
473 |
|
*/ |
474 |
|
public void testCancelledForkJoin() { |
475 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
475 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
476 |
|
public Integer realCompute() { |
477 |
|
FibTask f = new FibTask(8); |
478 |
|
assertTrue(f.cancel(true)); |
492 |
|
* get of a forked task throws exception when task cancelled |
493 |
|
*/ |
494 |
|
public void testCancelledForkGet() { |
495 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
495 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
496 |
|
public Integer realCompute() throws Exception { |
497 |
|
FibTask f = new FibTask(8); |
498 |
|
assertTrue(f.cancel(true)); |
512 |
|
* timed get of a forked task throws exception when task cancelled |
513 |
|
*/ |
514 |
|
public void testCancelledForkTimedGet() { |
515 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
515 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
516 |
|
public Integer realCompute() throws Exception { |
517 |
|
FibTask f = new FibTask(8); |
518 |
|
assertTrue(f.cancel(true)); |
532 |
|
* quietlyJoin of a forked task returns when task cancelled |
533 |
|
*/ |
534 |
|
public void testCancelledForkQuietlyJoin() { |
535 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
535 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
536 |
|
public Integer realCompute() { |
537 |
|
FibTask f = new FibTask(8); |
538 |
|
assertTrue(f.cancel(true)); |
549 |
|
*/ |
550 |
|
public void testGetPool() { |
551 |
|
final ForkJoinPool mainPool = mainPool(); |
552 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
552 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
553 |
|
public Integer realCompute() { |
554 |
|
assertSame(mainPool, getPool()); |
555 |
|
return NoResult; |
561 |
|
* getPool of non-FJ task returns null |
562 |
|
*/ |
563 |
|
public void testGetPool2() { |
564 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
564 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
565 |
|
public Integer realCompute() { |
566 |
|
assertNull(getPool()); |
567 |
|
return NoResult; |
573 |
|
* inForkJoinPool of executing task returns true |
574 |
|
*/ |
575 |
|
public void testInForkJoinPool() { |
576 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
576 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
577 |
|
public Integer realCompute() { |
578 |
|
assertTrue(inForkJoinPool()); |
579 |
|
return NoResult; |
585 |
|
* inForkJoinPool of non-FJ task returns false |
586 |
|
*/ |
587 |
|
public void testInForkJoinPool2() { |
588 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
588 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
589 |
|
public Integer realCompute() { |
590 |
|
assertFalse(inForkJoinPool()); |
591 |
|
return NoResult; |
597 |
|
* The value set by setRawResult is returned by getRawResult |
598 |
|
*/ |
599 |
|
public void testSetRawResult() { |
600 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
600 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
601 |
|
public Integer realCompute() { |
602 |
|
setRawResult(NoResult); |
603 |
|
assertSame(NoResult, getRawResult()); |
611 |
|
* A reinitialized normally completed task may be re-invoked |
612 |
|
*/ |
613 |
|
public void testReinitialize() { |
614 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
614 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
615 |
|
public Integer realCompute() { |
616 |
|
FibTask f = new FibTask(8); |
617 |
|
checkNotDone(f); |
633 |
|
* A reinitialized abnormally completed task may be re-invoked |
634 |
|
*/ |
635 |
|
public void testReinitializeAbnormal() { |
636 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
636 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
637 |
|
public Integer realCompute() { |
638 |
|
FailingFibTask f = new FailingFibTask(8); |
639 |
|
checkNotDone(f); |
657 |
|
* invoke task throws exception after invoking completeExceptionally |
658 |
|
*/ |
659 |
|
public void testCompleteExceptionally() { |
660 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
660 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
661 |
|
public Integer realCompute() { |
662 |
|
FibTask f = new FibTask(8); |
663 |
|
f.completeExceptionally(new FJException()); |
676 |
|
* invoke task suppresses execution invoking complete |
677 |
|
*/ |
678 |
|
public void testComplete() { |
679 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
679 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
680 |
|
public Integer realCompute() { |
681 |
|
FibTask f = new FibTask(8); |
682 |
|
f.complete(NoResult); |
692 |
|
* invokeAll(t1, t2) invokes all task arguments |
693 |
|
*/ |
694 |
|
public void testInvokeAll2() { |
695 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
695 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
696 |
|
public Integer realCompute() { |
697 |
|
FibTask f = new FibTask(8); |
698 |
|
FibTask g = new FibTask(9); |
708 |
|
* invokeAll(tasks) with 1 argument invokes task |
709 |
|
*/ |
710 |
|
public void testInvokeAll1() { |
711 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
711 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
712 |
|
public Integer realCompute() { |
713 |
|
FibTask f = new FibTask(8); |
714 |
|
invokeAll(f); |
722 |
|
* invokeAll(tasks) with > 2 argument invokes tasks |
723 |
|
*/ |
724 |
|
public void testInvokeAll3() { |
725 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
725 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
726 |
|
public Integer realCompute() { |
727 |
|
FibTask f = new FibTask(8); |
728 |
|
FibTask g = new FibTask(9); |
743 |
|
* invokeAll(collection) invokes all tasks in the collection |
744 |
|
*/ |
745 |
|
public void testInvokeAllCollection() { |
746 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
746 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
747 |
|
public Integer realCompute() { |
748 |
|
FibTask f = new FibTask(8); |
749 |
|
FibTask g = new FibTask(9); |
750 |
|
FibTask h = new FibTask(7); |
751 |
< |
HashSet<ForkJoinTask<?>> set = new HashSet<ForkJoinTask<?>>(); |
751 |
> |
HashSet<ForkJoinTask<?>> set = new HashSet<>(); |
752 |
|
set.add(f); |
753 |
|
set.add(g); |
754 |
|
set.add(h); |
768 |
|
* invokeAll(tasks) with any null task throws NPE |
769 |
|
*/ |
770 |
|
public void testInvokeAllNPE() { |
771 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
771 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
772 |
|
public Integer realCompute() { |
773 |
|
FibTask f = new FibTask(8); |
774 |
|
FibTask g = new FibTask(9); |
786 |
|
* invokeAll(t1, t2) throw exception if any task does |
787 |
|
*/ |
788 |
|
public void testAbnormalInvokeAll2() { |
789 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
789 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
790 |
|
public Integer realCompute() { |
791 |
|
FibTask f = new FibTask(8); |
792 |
|
FailingFibTask g = new FailingFibTask(9); |
805 |
|
* invokeAll(tasks) with 1 argument throws exception if task does |
806 |
|
*/ |
807 |
|
public void testAbnormalInvokeAll1() { |
808 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
808 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
809 |
|
public Integer realCompute() { |
810 |
|
FailingFibTask g = new FailingFibTask(9); |
811 |
|
try { |
823 |
|
* invokeAll(tasks) with > 2 argument throws exception if any task does |
824 |
|
*/ |
825 |
|
public void testAbnormalInvokeAll3() { |
826 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
826 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
827 |
|
public Integer realCompute() { |
828 |
|
FibTask f = new FibTask(8); |
829 |
|
FailingFibTask g = new FailingFibTask(9); |
843 |
|
* invokeAll(collection) throws exception if any task does |
844 |
|
*/ |
845 |
|
public void testAbnormalInvokeAllCollection() { |
846 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
846 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
847 |
|
public Integer realCompute() { |
848 |
|
FailingFibTask f = new FailingFibTask(8); |
849 |
|
FibTask g = new FibTask(9); |
850 |
|
FibTask h = new FibTask(7); |
851 |
< |
HashSet<ForkJoinTask<?>> set = new HashSet<ForkJoinTask<?>>(); |
851 |
> |
HashSet<ForkJoinTask<?>> set = new HashSet<>(); |
852 |
|
set.add(f); |
853 |
|
set.add(g); |
854 |
|
set.add(h); |
868 |
|
* and suppresses execution |
869 |
|
*/ |
870 |
|
public void testTryUnfork() { |
871 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
871 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
872 |
|
public Integer realCompute() { |
873 |
|
FibTask g = new FibTask(9); |
874 |
|
assertSame(g, g.fork()); |
888 |
|
* there are more tasks than threads |
889 |
|
*/ |
890 |
|
public void testGetSurplusQueuedTaskCount() { |
891 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
891 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
892 |
|
public Integer realCompute() { |
893 |
|
FibTask h = new FibTask(7); |
894 |
|
assertSame(h, h.fork()); |
911 |
|
* peekNextLocalTask returns most recent unexecuted task. |
912 |
|
*/ |
913 |
|
public void testPeekNextLocalTask() { |
914 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
914 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
915 |
|
public Integer realCompute() { |
916 |
|
FibTask g = new FibTask(9); |
917 |
|
assertSame(g, g.fork()); |
931 |
|
* without executing it |
932 |
|
*/ |
933 |
|
public void testPollNextLocalTask() { |
934 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
934 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
935 |
|
public Integer realCompute() { |
936 |
|
FibTask g = new FibTask(9); |
937 |
|
assertSame(g, g.fork()); |
950 |
|
* pollTask returns an unexecuted task without executing it |
951 |
|
*/ |
952 |
|
public void testPollTask() { |
953 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
953 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
954 |
|
public Integer realCompute() { |
955 |
|
FibTask g = new FibTask(9); |
956 |
|
assertSame(g, g.fork()); |
969 |
|
* peekNextLocalTask returns least recent unexecuted task in async mode |
970 |
|
*/ |
971 |
|
public void testPeekNextLocalTaskAsync() { |
972 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
972 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
973 |
|
public Integer realCompute() { |
974 |
|
FibTask g = new FibTask(9); |
975 |
|
assertSame(g, g.fork()); |
990 |
|
* executing it, in async mode |
991 |
|
*/ |
992 |
|
public void testPollNextLocalTaskAsync() { |
993 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
993 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
994 |
|
public Integer realCompute() { |
995 |
|
FibTask g = new FibTask(9); |
996 |
|
assertSame(g, g.fork()); |
1010 |
|
* async mode |
1011 |
|
*/ |
1012 |
|
public void testPollTaskAsync() { |
1013 |
< |
RecursiveTask<Integer> a = new CheckedRecursiveTask<Integer>() { |
1013 |
> |
RecursiveTask<Integer> a = new CheckedRecursiveTask<>() { |
1014 |
|
public Integer realCompute() { |
1015 |
|
FibTask g = new FibTask(9); |
1016 |
|
assertSame(g, g.fork()); |