public final class ForkedBooter
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
ForkedBooter.PingScheduler |
Modifier and Type | Field and Description |
---|---|
private CommandReader |
commandReader |
private static long |
DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS |
private java.util.concurrent.ScheduledThreadPoolExecutor |
jvmTerminator |
private static java.lang.String |
LAST_DITCH_SHUTDOWN_THREAD |
private static long |
ONE_SECOND_IN_MILLIS |
private java.io.PrintStream |
originalOut |
private static java.lang.String |
PING_THREAD |
private static long |
PING_TIMEOUT_IN_SECONDS |
private ForkedBooter.PingScheduler |
pingScheduler |
private ProviderConfiguration |
providerConfiguration |
private StartupConfiguration |
startupConfiguration |
private long |
systemExitTimeoutInSeconds |
private java.lang.Object |
testSet |
Constructor and Description |
---|
ForkedBooter() |
Modifier and Type | Method and Description |
---|---|
private void |
acknowledgedExit() |
private static boolean |
acquireOnePermit(java.util.concurrent.Semaphore barrier,
long timeoutMillis) |
private void |
cancelPingScheduler() |
private static boolean |
canUseNewPingMechanism(PpidChecker pluginProcessChecker) |
private CommandListener |
createExitHandler() |
private ForkingReporterFactory |
createForkingReporterFactory() |
private CommandListener |
createPingHandler(java.util.concurrent.atomic.AtomicBoolean pingDone) |
private java.lang.Runnable |
createPingJob(java.util.concurrent.atomic.AtomicBoolean pingDone,
PpidChecker pluginProcessChecker) |
private static java.util.concurrent.ScheduledExecutorService |
createPingScheduler() |
private SurefireProvider |
createProviderInCurrentClassloader(ForkingReporterFactory reporterManagerFactory) |
private static java.io.InputStream |
createSurefirePropertiesIfFileExists(java.lang.String tmpDir,
java.lang.String propFileName) |
private java.lang.Object |
createTestSet(TypeEncodedValue forkedTestSet,
boolean readTestsFromCommandReader,
java.lang.ClassLoader cl) |
private void |
encodeAndWriteToOutput(java.lang.String string) |
private void |
execute() |
private void |
exit(int returnCode) |
private java.util.concurrent.ScheduledThreadPoolExecutor |
getJvmTerminator() |
private RunResult |
invokeProviderInSameClassLoader(ForkingReporterFactory factory) |
private static boolean |
isDebugging() |
private void |
kill() |
private void |
kill(int returnCode) |
private void |
launchLastDitchDaemonShutdownThread(int returnCode) |
private ForkedBooter.PingScheduler |
listenToShutdownCommands(java.lang.Long ppid) |
static void |
main(java.lang.String... args)
This method is invoked when Surefire is forked - this method parses and organizes the arguments passed to it and
then calls the Surefire class' run method.
|
private java.lang.Runnable |
processCheckerJob(ForkedBooter.PingScheduler pingMechanism) |
private RunResult |
runSuitesInProcess() |
private void |
setupBooter(java.lang.String tmpDir,
java.lang.String dumpFileName,
java.lang.String surefirePropsFileName,
java.lang.String effectiveSystemPropertiesFileName) |
private static final long DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS
private static final long PING_TIMEOUT_IN_SECONDS
private static final long ONE_SECOND_IN_MILLIS
private static final java.lang.String LAST_DITCH_SHUTDOWN_THREAD
private static final java.lang.String PING_THREAD
private final CommandReader commandReader
private final java.io.PrintStream originalOut
private volatile long systemExitTimeoutInSeconds
private volatile ForkedBooter.PingScheduler pingScheduler
private java.util.concurrent.ScheduledThreadPoolExecutor jvmTerminator
private ProviderConfiguration providerConfiguration
private StartupConfiguration startupConfiguration
private java.lang.Object testSet
private void setupBooter(java.lang.String tmpDir, java.lang.String dumpFileName, java.lang.String surefirePropsFileName, java.lang.String effectiveSystemPropertiesFileName) throws java.io.IOException, SurefireExecutionException
java.io.IOException
SurefireExecutionException
private void execute()
private java.lang.Object createTestSet(TypeEncodedValue forkedTestSet, boolean readTestsFromCommandReader, java.lang.ClassLoader cl)
private void cancelPingScheduler()
private ForkedBooter.PingScheduler listenToShutdownCommands(java.lang.Long ppid)
private java.lang.Runnable processCheckerJob(ForkedBooter.PingScheduler pingMechanism)
private CommandListener createPingHandler(java.util.concurrent.atomic.AtomicBoolean pingDone)
private CommandListener createExitHandler()
private java.lang.Runnable createPingJob(java.util.concurrent.atomic.AtomicBoolean pingDone, PpidChecker pluginProcessChecker)
private void encodeAndWriteToOutput(java.lang.String string)
private void kill()
private void kill(int returnCode)
private void exit(int returnCode)
private void acknowledgedExit()
private RunResult runSuitesInProcess() throws SurefireExecutionException, TestSetFailedException, java.lang.reflect.InvocationTargetException
SurefireExecutionException
TestSetFailedException
java.lang.reflect.InvocationTargetException
private ForkingReporterFactory createForkingReporterFactory()
private java.util.concurrent.ScheduledThreadPoolExecutor getJvmTerminator()
private void launchLastDitchDaemonShutdownThread(int returnCode)
private RunResult invokeProviderInSameClassLoader(ForkingReporterFactory factory) throws TestSetFailedException, java.lang.reflect.InvocationTargetException
TestSetFailedException
java.lang.reflect.InvocationTargetException
private SurefireProvider createProviderInCurrentClassloader(ForkingReporterFactory reporterManagerFactory)
public static void main(java.lang.String... args)
args
- Commandline argumentsprivate static boolean canUseNewPingMechanism(PpidChecker pluginProcessChecker)
private static boolean acquireOnePermit(java.util.concurrent.Semaphore barrier, long timeoutMillis)
private static java.util.concurrent.ScheduledExecutorService createPingScheduler()
private static java.io.InputStream createSurefirePropertiesIfFileExists(java.lang.String tmpDir, java.lang.String propFileName) throws java.io.FileNotFoundException
java.io.FileNotFoundException
private static boolean isDebugging()