Class ForkJoinPoolTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by JSR166TestCase
              extended by ForkJoinPoolTest
All Implemented Interfaces:
junit.framework.Test

public class ForkJoinPoolTest
extends JSR166TestCase


Nested Class Summary
 
Nested classes/interfaces inherited from class JSR166TestCase
JSR166TestCase.AdjustablePolicy, JSR166TestCase.CallableOne, JSR166TestCase.CheckedBarrier, JSR166TestCase.CheckedCallable<T>, JSR166TestCase.CheckedInterruptedCallable<T>, JSR166TestCase.CheckedInterruptedRunnable, JSR166TestCase.CheckedRecursiveAction, JSR166TestCase.CheckedRecursiveTask<T>, JSR166TestCase.CheckedRunnable, JSR166TestCase.LongPossiblyInterruptedRunnable, JSR166TestCase.MediumInterruptedRunnable, JSR166TestCase.MediumPossiblyInterruptedRunnable, JSR166TestCase.MediumRunnable, JSR166TestCase.NoOpCallable, JSR166TestCase.NoOpREHandler, JSR166TestCase.NoOpRunnable, JSR166TestCase.NPETask, JSR166TestCase.RunnableShouldThrow, JSR166TestCase.ShortInterruptedRunnable, JSR166TestCase.ShortRunnable, JSR166TestCase.SimpleThreadFactory, JSR166TestCase.SmallCallable, JSR166TestCase.SmallPossiblyInterruptedRunnable, JSR166TestCase.SmallRunnable, JSR166TestCase.StringTask, JSR166TestCase.ThreadShouldThrow, JSR166TestCase.TrackedCallable, JSR166TestCase.TrackedLongRunnable, JSR166TestCase.TrackedMediumRunnable, JSR166TestCase.TrackedNoOpRunnable, JSR166TestCase.TrackedRunnable, JSR166TestCase.TrackedShortRunnable, JSR166TestCase.TrackedSmallRunnable
 
Field Summary
 
Fields inherited from class JSR166TestCase
eight, expensiveTests, five, four, LONG_DELAY_MS, m1, m10, m2, m3, m4, m5, m6, MEDIUM_DELAY_MS, nine, one, seven, SHORT_DELAY_MS, six, SIZE, SMALL_DELAY_MS, TEST_STRING, three, two, zero
 
Constructor Summary
ForkJoinPoolTest()
           
 
Method Summary
static void main(java.lang.String[] args)
           
static junit.framework.Test suite()
           
 void testBlockingForkJoinTask()
          Pool maintains parallelism when using ManagedBlocker
 void testConstructor1()
          Constructor throws if size argument is less than zero
 void testConstructor2()
          Constructor throws if factory argument is null
 void testDefaultInitialState()
          Successfully constructed pool reports default factory, parallelism and async mode policies, no active threads or tasks, and quiescent running state.
 void testDrainTasksTo()
          drainTasksTo transfers unexecuted submitted tasks, if present
 void testExecuteNullRunnable()
          execute(null runnable) throws NullPointerException
 void testExecuteRunnable()
          execute(runnable) runs it to completion
 void testGetParallelism()
          getParallelism returns size set in constructor
 void testGetPoolSize()
          getPoolSize returns number of started workers.
 void testInterruptedSubmit()
          submit(callable).get() throws InterruptedException if interrupted
 void testInvokeAll1()
          invokeAll(null) throws NullPointerException
 void testInvokeAll2()
          invokeAll(empty collection) returns empty collection
 void testInvokeAll3()
          invokeAll(c) throws NullPointerException if c has null elements
 void testInvokeAll4()
          get of returned element of invokeAll(c) throws ExecutionException on failed task
 void testInvokeAll5()
          invokeAll(c) returns results of all completed tasks in c
 void testInvokeAny1()
          invokeAny(null) throws NullPointerException
 void testInvokeAny2()
          invokeAny(empty collection) throws IllegalArgumentException
 void testInvokeAny3()
          invokeAny(c) throws NullPointerException if c has a single null element
 void testInvokeAny4()
          invokeAny(c) throws NullPointerException if c has null elements
 void testInvokeAny5()
          invokeAny(c) throws ExecutionException if no task in c completes
 void testInvokeAny6()
          invokeAny(c) returns result of some task in c if at least one completes
 void testisQuiescent()
          After invoking a single task, isQuiescent is true, queues are empty, threads are not active, and construction parameters continue to hold
 void testPollSubmission()
          pollSubmission returns unexecuted submitted task, if present
 void testSetUncaughtExceptionHandler()
          setUncaughtExceptionHandler changes handler for uncaught exceptions.
 void testSubmitAfterShutdown()
          A task submitted after shutdown is rejected
 void testSubmitCallable()
          Completed submit(callable) returns result
 void testSubmitEE()
          get of submit(callable) throws ExecutionException if callable throws exception
 void testSubmitFailedPrivilegedExceptionAction()
          A submitted failed privileged exception action reports exception
 void testSubmitForkJoinTask()
          Completed submit(ForkJoinTask) returns result
 void testSubmitNullCallable()
          submit(null callable) throws NullPointerException
 void testSubmitPrivilegedAction()
          A submitted privileged action runs to completion
 void testSubmitPrivilegedExceptionAction()
          A submitted privileged exception action runs to completion
 void testSubmitRunnable()
          Completed submit(runnable) returns successfully
 void testSubmitRunnable2()
          Completed submit(runnable, result) returns result
 void testTimedInvokeAll1()
          timed invokeAll(null) throws NullPointerException
 void testTimedInvokeAll2()
          timed invokeAll(empty collection) returns empty collection
 void testTimedInvokeAll3()
          timed invokeAll(c) throws NullPointerException if c has null elements
 void testTimedInvokeAll4()
          get of returned element of invokeAll(c) throws exception on failed task
 void testTimedInvokeAll5()
          timed invokeAll(c) returns results of all completed tasks in c
 void testTimedInvokeAllNullTimeUnit()
          timed invokeAll(null time unit) throws NullPointerException
 void testTimedInvokeAny1()
          timed invokeAny(null) throws NullPointerException
 void testTimedInvokeAny2()
          timed invokeAny(empty collection) throws IllegalArgumentException
 void testTimedInvokeAny3()
          timed invokeAny(c) throws NullPointerException if c has null elements
 void testTimedInvokeAny4()
          timed invokeAny(c) throws ExecutionException if no task completes
 void testTimedInvokeAny5()
          timed invokeAny(c) returns result of some task in c
 void testTimedInvokeAnyNullTimeUnit()
          timed invokeAny(null time unit) throws NullPointerException
 
Methods inherited from class JSR166TestCase
assertThreadJoinTimesOut, awaiter, checkEmpty, delay, getShortDelay, joinPool, latchAwaitingStringTask, newTestSuite, permissivePolicy, possiblyInterruptedRunnable, runTest, runTestProfiled, runWithoutPermissions, runWithPermissions, setDelays, setUp, shouldThrow, shouldThrow, tearDown, threadAssertEquals, threadAssertEquals, threadAssertFalse, threadAssertNull, threadAssertSame, threadAssertTrue, threadFail, threadRecordFailure, threadShouldThrow, threadShouldThrow, threadUnexpectedException, trackedRunnable
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ForkJoinPoolTest

public ForkJoinPoolTest()
Method Detail

main

public static void main(java.lang.String[] args)

suite

public static junit.framework.Test suite()

testDefaultInitialState

public void testDefaultInitialState()
Successfully constructed pool reports default factory, parallelism and async mode policies, no active threads or tasks, and quiescent running state.


testConstructor1

public void testConstructor1()
Constructor throws if size argument is less than zero


testConstructor2

public void testConstructor2()
Constructor throws if factory argument is null


testGetParallelism

public void testGetParallelism()
getParallelism returns size set in constructor


testGetPoolSize

public void testGetPoolSize()
getPoolSize returns number of started workers.


testSetUncaughtExceptionHandler

public void testSetUncaughtExceptionHandler()
                                     throws java.lang.InterruptedException
setUncaughtExceptionHandler changes handler for uncaught exceptions. Additionally tests: Overriding ForkJoinWorkerThread.onStart performs its defined action

Throws:
java.lang.InterruptedException

testisQuiescent

public void testisQuiescent()
                     throws java.lang.InterruptedException
After invoking a single task, isQuiescent is true, queues are empty, threads are not active, and construction parameters continue to hold

Throws:
java.lang.InterruptedException

testSubmitForkJoinTask

public void testSubmitForkJoinTask()
                            throws java.lang.Throwable
Completed submit(ForkJoinTask) returns result

Throws:
java.lang.Throwable

testSubmitAfterShutdown

public void testSubmitAfterShutdown()
A task submitted after shutdown is rejected


testBlockingForkJoinTask

public void testBlockingForkJoinTask()
                              throws java.lang.Throwable
Pool maintains parallelism when using ManagedBlocker

Throws:
java.lang.Throwable

testPollSubmission

public void testPollSubmission()
pollSubmission returns unexecuted submitted task, if present


testDrainTasksTo

public void testDrainTasksTo()
drainTasksTo transfers unexecuted submitted tasks, if present


testExecuteRunnable

public void testExecuteRunnable()
                         throws java.lang.Throwable
execute(runnable) runs it to completion

Throws:
java.lang.Throwable

testSubmitCallable

public void testSubmitCallable()
                        throws java.lang.Throwable
Completed submit(callable) returns result

Throws:
java.lang.Throwable

testSubmitRunnable

public void testSubmitRunnable()
                        throws java.lang.Throwable
Completed submit(runnable) returns successfully

Throws:
java.lang.Throwable

testSubmitRunnable2

public void testSubmitRunnable2()
                         throws java.lang.Throwable
Completed submit(runnable, result) returns result

Throws:
java.lang.Throwable

testSubmitPrivilegedAction

public void testSubmitPrivilegedAction()
                                throws java.lang.Exception
A submitted privileged action runs to completion

Throws:
java.lang.Exception

testSubmitPrivilegedExceptionAction

public void testSubmitPrivilegedExceptionAction()
                                         throws java.lang.Exception
A submitted privileged exception action runs to completion

Throws:
java.lang.Exception

testSubmitFailedPrivilegedExceptionAction

public void testSubmitFailedPrivilegedExceptionAction()
                                               throws java.lang.Exception
A submitted failed privileged exception action reports exception

Throws:
java.lang.Exception

testExecuteNullRunnable

public void testExecuteNullRunnable()
execute(null runnable) throws NullPointerException


testSubmitNullCallable

public void testSubmitNullCallable()
submit(null callable) throws NullPointerException


testInterruptedSubmit

public void testInterruptedSubmit()
                           throws java.lang.InterruptedException
submit(callable).get() throws InterruptedException if interrupted

Throws:
java.lang.InterruptedException

testSubmitEE

public void testSubmitEE()
                  throws java.lang.Throwable
get of submit(callable) throws ExecutionException if callable throws exception

Throws:
java.lang.Throwable

testInvokeAny1

public void testInvokeAny1()
                    throws java.lang.Throwable
invokeAny(null) throws NullPointerException

Throws:
java.lang.Throwable

testInvokeAny2

public void testInvokeAny2()
                    throws java.lang.Throwable
invokeAny(empty collection) throws IllegalArgumentException

Throws:
java.lang.Throwable

testInvokeAny3

public void testInvokeAny3()
                    throws java.lang.Throwable
invokeAny(c) throws NullPointerException if c has a single null element

Throws:
java.lang.Throwable

testInvokeAny4

public void testInvokeAny4()
                    throws java.lang.Throwable
invokeAny(c) throws NullPointerException if c has null elements

Throws:
java.lang.Throwable

testInvokeAny5

public void testInvokeAny5()
                    throws java.lang.Throwable
invokeAny(c) throws ExecutionException if no task in c completes

Throws:
java.lang.Throwable

testInvokeAny6

public void testInvokeAny6()
                    throws java.lang.Throwable
invokeAny(c) returns result of some task in c if at least one completes

Throws:
java.lang.Throwable

testInvokeAll1

public void testInvokeAll1()
                    throws java.lang.Throwable
invokeAll(null) throws NullPointerException

Throws:
java.lang.Throwable

testInvokeAll2

public void testInvokeAll2()
                    throws java.lang.InterruptedException
invokeAll(empty collection) returns empty collection

Throws:
java.lang.InterruptedException

testInvokeAll3

public void testInvokeAll3()
                    throws java.lang.InterruptedException
invokeAll(c) throws NullPointerException if c has null elements

Throws:
java.lang.InterruptedException

testInvokeAll4

public void testInvokeAll4()
                    throws java.lang.Throwable
get of returned element of invokeAll(c) throws ExecutionException on failed task

Throws:
java.lang.Throwable

testInvokeAll5

public void testInvokeAll5()
                    throws java.lang.Throwable
invokeAll(c) returns results of all completed tasks in c

Throws:
java.lang.Throwable

testTimedInvokeAny1

public void testTimedInvokeAny1()
                         throws java.lang.Throwable
timed invokeAny(null) throws NullPointerException

Throws:
java.lang.Throwable

testTimedInvokeAnyNullTimeUnit

public void testTimedInvokeAnyNullTimeUnit()
                                    throws java.lang.Throwable
timed invokeAny(null time unit) throws NullPointerException

Throws:
java.lang.Throwable

testTimedInvokeAny2

public void testTimedInvokeAny2()
                         throws java.lang.Throwable
timed invokeAny(empty collection) throws IllegalArgumentException

Throws:
java.lang.Throwable

testTimedInvokeAny3

public void testTimedInvokeAny3()
                         throws java.lang.Throwable
timed invokeAny(c) throws NullPointerException if c has null elements

Throws:
java.lang.Throwable

testTimedInvokeAny4

public void testTimedInvokeAny4()
                         throws java.lang.Throwable
timed invokeAny(c) throws ExecutionException if no task completes

Throws:
java.lang.Throwable

testTimedInvokeAny5

public void testTimedInvokeAny5()
                         throws java.lang.Throwable
timed invokeAny(c) returns result of some task in c

Throws:
java.lang.Throwable

testTimedInvokeAll1

public void testTimedInvokeAll1()
                         throws java.lang.Throwable
timed invokeAll(null) throws NullPointerException

Throws:
java.lang.Throwable

testTimedInvokeAllNullTimeUnit

public void testTimedInvokeAllNullTimeUnit()
                                    throws java.lang.Throwable
timed invokeAll(null time unit) throws NullPointerException

Throws:
java.lang.Throwable

testTimedInvokeAll2

public void testTimedInvokeAll2()
                         throws java.lang.InterruptedException
timed invokeAll(empty collection) returns empty collection

Throws:
java.lang.InterruptedException

testTimedInvokeAll3

public void testTimedInvokeAll3()
                         throws java.lang.InterruptedException
timed invokeAll(c) throws NullPointerException if c has null elements

Throws:
java.lang.InterruptedException

testTimedInvokeAll4

public void testTimedInvokeAll4()
                         throws java.lang.Throwable
get of returned element of invokeAll(c) throws exception on failed task

Throws:
java.lang.Throwable

testTimedInvokeAll5

public void testTimedInvokeAll5()
                         throws java.lang.Throwable
timed invokeAll(c) returns results of all completed tasks in c

Throws:
java.lang.Throwable