TradefedSandbox

public class TradefedSandbox
extends Object implements ISandbox

java.lang.Object
   ↳ com.android.tradefed.sandbox.TradefedSandbox


Sandbox container that can run a Trade Federation invocation. TODO: Allow Options to be passed to the sandbox.

Summary

Constants

String TF_GLOBAL_CONFIG

The variable holding TF specific environment

Public constructors

TradefedSandbox()

Public methods

String createClasspath(File workingDir)

Create a classpath based on the environment and the working directory returned by getTradefedSandboxEnvironment(IInvocationContext, IConfiguration, String[]).

IConfiguration createThinLauncherConfig(String[] args, IKeyStoreClient keyStoreClient, IRunUtil runUtil, File globalConfig)

Special mode disconnected from main run: When a configuration does not appear to exists in the parent, we fallback to thin launcher where we attempt to setup the sandbox with currently known informations and fill up the working directory to create the config fully in the versioned dir.

File getTradefedSandboxEnvironment(IInvocationContext context, IConfiguration nonVersionedConfig, String[] args)

Returns the sandbox environment TF to be used based on the command line arguments.

Exception prepareEnvironment(IInvocationContext context, IConfiguration config, ITestInvocationListener listener)

Prepare the environment for the sandbox to run properly.

CommandResult run(IConfiguration config, ITestLogger logger)

Run the sandbox with the environment that was set.

void tearDown()

Clean up any states, files or environment that may have been changed.

Protected methods

Exception prepareConfiguration(IInvocationContext context, IConfiguration config, ITestInvocationListener listener)

Prepare the IConfiguration that will be passed to the subprocess and will drive the container execution.

File prepareContext(IInvocationContext context)

Prepare and serialize the IInvocationContext.

Constants

TF_GLOBAL_CONFIG

public static final String TF_GLOBAL_CONFIG

The variable holding TF specific environment

Constant Value: "TF_GLOBAL_CONFIG"

Public constructors

TradefedSandbox

public TradefedSandbox ()

Public methods

createClasspath

public String createClasspath (File workingDir)

Create a classpath based on the environment and the working directory returned by getTradefedSandboxEnvironment(IInvocationContext, IConfiguration, String[]).

Parameters
workingDir File: the current working directory for the sandbox.

Returns
String The classpath to be use.

Throws
ConfigurationException

createThinLauncherConfig

public IConfiguration createThinLauncherConfig (String[] args, 
                IKeyStoreClient keyStoreClient, 
                IRunUtil runUtil, 
                File globalConfig)

Special mode disconnected from main run: When a configuration does not appear to exists in the parent, we fallback to thin launcher where we attempt to setup the sandbox with currently known informations and fill up the working directory to create the config fully in the versioned dir.

Parameters
args String: The original command line args.

keyStoreClient IKeyStoreClient: the current keystore client to use to create configurations.

runUtil IRunUtil: the current IRunUtil to run host commands.

globalConfig File: The global configuration to use to run subprocesses of TF.

Returns
IConfiguration a File pointing to the configuration XML of TF for NON_VERSIONED objects. Returns null if no thin launcher config could be created.

getTradefedSandboxEnvironment

public File getTradefedSandboxEnvironment (IInvocationContext context, 
                IConfiguration nonVersionedConfig, 
                String[] args)

Returns the sandbox environment TF to be used based on the command line arguments.

Parameters
context IInvocationContext: the IInvocationContext of the parent.

nonVersionedConfig IConfiguration: the IConfiguration representing the non versioned objects.

args String: the command line arguments.

Returns
File a File directory containing the TF sandbox environment jars.

Throws
ConfigurationException

prepareEnvironment

public Exception prepareEnvironment (IInvocationContext context, 
                IConfiguration config, 
                ITestInvocationListener listener)

Prepare the environment for the sandbox to run properly.

Parameters
context IInvocationContext: the current invocation IInvocationContext.

config IConfiguration: the IConfiguration for the command to run.

listener ITestInvocationListener: the current invocation ITestInvocationListener where final results should be piped.

Returns
Exception an Exception containing the failure. or Null if successful.

run

public CommandResult run (IConfiguration config, 
                ITestLogger logger)

Run the sandbox with the environment that was set.

Parameters
config IConfiguration: the IConfiguration for the command to run.

logger ITestLogger: an ITestLogger where we can log files.

Returns
CommandResult a CommandResult with the status of the sandbox run and logs.

Throws
Throwable

tearDown

public void tearDown ()

Clean up any states, files or environment that may have been changed.

Protected methods

prepareConfiguration

protected Exception prepareConfiguration (IInvocationContext context, 
                IConfiguration config, 
                ITestInvocationListener listener)

Prepare the IConfiguration that will be passed to the subprocess and will drive the container execution.

Parameters
context IInvocationContext: The current IInvocationContext.

config IConfiguration: the IConfiguration to be prepared.

listener ITestInvocationListener: The current invocation ITestInvocationListener.

Returns
Exception an Exception if anything went wrong, null otherwise.

prepareContext

protected File prepareContext (IInvocationContext context)

Prepare and serialize the IInvocationContext.

Parameters
context IInvocationContext: the IInvocationContext to be prepared.

Returns
File the serialized IInvocationContext.

Throws
IOException