Class ForkJoinPoolHierarchicalTestExecutorService
java.lang.Object
org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService
- All Implemented Interfaces:
AutoCloseable
,HierarchicalTestExecutorService
@API(status=STABLE,
since="1.10")
public class ForkJoinPoolHierarchicalTestExecutorService
extends Object
implements HierarchicalTestExecutorService
- Since:
- 1.3
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
(package private) static class
(package private) static class
Nested classes/interfaces inherited from interface org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutorService
HierarchicalTestExecutorService.TestTask
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionForkJoinPoolHierarchicalTestExecutorService
(ConfigurationParameters configurationParameters) Create a newForkJoinPoolHierarchicalTestExecutorService
based on the suppliedConfigurationParameters
.Create a newForkJoinPoolHierarchicalTestExecutorService
based on the suppliedParallelExecutionConfiguration
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Close this service and let it perform any required cleanup work.private static ParallelExecutionConfiguration
createConfiguration
(ConfigurationParameters configurationParameters) private ForkJoinPool
createForkJoinPool
(ParallelExecutionConfiguration configuration) private void
executeNonConcurrentTasks
(Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> nonConcurrentTasks) private void
forkConcurrentTasks
(List<? extends HierarchicalTestExecutorService.TestTask> tasks, Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> nonConcurrentTasks, Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> concurrentTasksInReverseOrder) void
invokeAll
(List<? extends HierarchicalTestExecutorService.TestTask> tasks) Invoke all supplied test tasks and block until their execution has finished.private boolean
private void
joinConcurrentTasksInReverseOrderToEnableWorkStealing
(Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> concurrentTasksInReverseOrder) private static Callable
<ForkJoinPool> sinceJava7ConstructorInvocation
(ParallelExecutionConfiguration configuration, ForkJoinPool.ForkJoinWorkerThreadFactory threadFactory) private static Optional
<Constructor<ForkJoinPool>> private static Function
<Constructor<ForkJoinPool>, Callable<ForkJoinPool>> sinceJava9ConstructorInvocation
(ParallelExecutionConfiguration configuration, ForkJoinPool.ForkJoinWorkerThreadFactory threadFactory) Submit the supplied test task to be executed by this service.
-
Field Details
-
forkJoinPool
-
parallelism
private final int parallelism
-
-
Constructor Details
-
ForkJoinPoolHierarchicalTestExecutorService
Create a newForkJoinPoolHierarchicalTestExecutorService
based on the suppliedConfigurationParameters
.- See Also:
-
ForkJoinPoolHierarchicalTestExecutorService
@API(status=STABLE, since="1.10") public ForkJoinPoolHierarchicalTestExecutorService(ParallelExecutionConfiguration configuration) Create a newForkJoinPoolHierarchicalTestExecutorService
based on the suppliedParallelExecutionConfiguration
.- Since:
- 1.7
-
-
Method Details
-
createConfiguration
private static ParallelExecutionConfiguration createConfiguration(ConfigurationParameters configurationParameters) -
createForkJoinPool
-
sinceJava9Constructor
-
sinceJava9ConstructorInvocation
private static Function<Constructor<ForkJoinPool>,Callable<ForkJoinPool>> sinceJava9ConstructorInvocation(ParallelExecutionConfiguration configuration, ForkJoinPool.ForkJoinWorkerThreadFactory threadFactory) -
sinceJava7ConstructorInvocation
private static Callable<ForkJoinPool> sinceJava7ConstructorInvocation(ParallelExecutionConfiguration configuration, ForkJoinPool.ForkJoinWorkerThreadFactory threadFactory) -
submit
Description copied from interface:HierarchicalTestExecutorService
Submit the supplied test task to be executed by this service.Implementations may execute the task asynchronously as long as its execution mode is concurrent.
Implementations must generally acquire and release the task's resource lock before and after its execution unless they execute all tests in the same thread which upholds the same guarantees.
- Specified by:
submit
in interfaceHierarchicalTestExecutorService
- Parameters:
testTask
- the test task to be executed- Returns:
- a future that the caller can use to wait for the task's execution to be finished
- See Also:
-
isAlreadyRunningInForkJoinPool
private boolean isAlreadyRunningInForkJoinPool() -
invokeAll
Description copied from interface:HierarchicalTestExecutorService
Invoke all supplied test tasks and block until their execution has finished.Implementations may execute one or multiple of the supplied tasks in parallel as long as their execution mode is concurrent.
Implementations must generally acquire and release each task's resource lock before and after its execution unless they execute all tests in the same thread which upholds the same guarantees.
- Specified by:
invokeAll
in interfaceHierarchicalTestExecutorService
- Parameters:
tasks
- the test tasks to be executed- See Also:
-
forkConcurrentTasks
private void forkConcurrentTasks(List<? extends HierarchicalTestExecutorService.TestTask> tasks, Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> nonConcurrentTasks, Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> concurrentTasksInReverseOrder) -
executeNonConcurrentTasks
private void executeNonConcurrentTasks(Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> nonConcurrentTasks) -
joinConcurrentTasksInReverseOrderToEnableWorkStealing
private void joinConcurrentTasksInReverseOrderToEnableWorkStealing(Deque<ForkJoinPoolHierarchicalTestExecutorService.ExclusiveTask> concurrentTasksInReverseOrder) -
close
public void close()Description copied from interface:HierarchicalTestExecutorService
Close this service and let it perform any required cleanup work.For example, thread-based implementations should usually close their thread pools in this method.
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceHierarchicalTestExecutorService
-