InvocationExecution

public class InvocationExecution
extends Object implements IInvocationExecution

java.lang.Object
   ↳ com.android.tradefed.invoker.InvocationExecution


Class that describes all the invocation steps: build download, target_prep, run tests, clean up. Can be extended to override the default behavior of some steps. Order of the steps is driven by TestInvocation.

Summary

Public constructors

InvocationExecution()

Public methods

void cleanUpBuilds(IInvocationContext context, IConfiguration config)

Execute the build_provider clean up step.

void doCleanUp(IInvocationContext context, IConfiguration config, Throwable exception)

Execute the target_preparer and multi_target_preparer cleanUp step.

void doSetup(IInvocationContext context, IConfiguration config, ITestInvocationListener listener)

Execute the target_preparer and multi_target_preparer setUp step.

void doTeardown(IInvocationContext context, IConfiguration config, Throwable exception)

Execute the target_preparer and multi_target_preparer teardown step.

boolean fetchBuild(IInvocationContext context, IConfiguration config, IRescheduler rescheduler, ITestInvocationListener listener)

Execute the build_provider step of the invocation.

boolean resetBuildAndReschedule(Throwable exception, ITestInvocationListener listener, IConfiguration config, IInvocationContext context)

Report a failure for the invocation.

void runTests(IInvocationContext context, IConfiguration config, ITestInvocationListener listener)

Runs the test.

boolean shardConfig(IConfiguration config, IInvocationContext context, IRescheduler rescheduler)

Attempt to shard the configuration into sub-configurations, to be re-scheduled to run on multiple resources in parallel.

Protected methods

IShardHelper createShardHelper()

Create an return the IShardHelper to be used.

Public constructors

InvocationExecution

public InvocationExecution ()

Public methods

cleanUpBuilds

public void cleanUpBuilds (IInvocationContext context, 
                IConfiguration config)

Execute the build_provider clean up step. Associated with the build fetching.

Parameters
context IInvocationContext: the IInvocationContext of the invocation.

config IConfiguration: the IConfiguration of this test run.

doCleanUp

public void doCleanUp (IInvocationContext context, 
                IConfiguration config, 
                Throwable exception)

Execute the target_preparer and multi_target_preparer cleanUp step. Does the devices clean up.

Parameters
context IInvocationContext: the IInvocationContext of the invocation.

config IConfiguration: the IConfiguration of this test run.

exception Throwable: the original exception thrown by the test running.

doSetup

public void doSetup (IInvocationContext context, 
                IConfiguration config, 
                ITestInvocationListener listener)

Execute the target_preparer and multi_target_preparer setUp step. Does all the devices setup required for the test to run.

Parameters
context IInvocationContext: the IInvocationContext of the invocation.

config IConfiguration: the IConfiguration of this test run.

listener ITestInvocationListener: the ITestInvocation to report setup failures.

Throws
TargetSetupError
BuildError
DeviceNotAvailableException

doTeardown

public void doTeardown (IInvocationContext context, 
                IConfiguration config, 
                Throwable exception)

Execute the target_preparer and multi_target_preparer teardown step. Does the devices tear down associated with the setup.

Parameters
context IInvocationContext: the IInvocationContext of the invocation.

config IConfiguration: the IConfiguration of this test run.

exception Throwable: the original exception thrown by the test running.

Throws
Throwable

fetchBuild

public boolean fetchBuild (IInvocationContext context, 
                IConfiguration config, 
                IRescheduler rescheduler, 
                ITestInvocationListener listener)

Execute the build_provider step of the invocation.

Parameters
context IInvocationContext: the IInvocationContext of the invocation.

config IConfiguration: the IConfiguration of this test run.

rescheduler IRescheduler: the IRescheduler, for rescheduling portions of the invocation for execution on another resource(s)

listener ITestInvocationListener: the ITestInvocation to report build download failures.

Returns
boolean True if we successfully downloaded the build, false otherwise.

Throws
DeviceNotAvailableException
BuildRetrievalError

resetBuildAndReschedule

public boolean resetBuildAndReschedule (Throwable exception, 
                ITestInvocationListener listener, 
                IConfiguration config, 
                IInvocationContext context)

Report a failure for the invocation.

Parameters
exception Throwable: The exception that should be reported.

listener ITestInvocationListener: The invocation listener.

config IConfiguration: The configuration currently running.

context IInvocationContext: The IInvocationContext of the invocation.

Returns
boolean True if the configuration should be rescheduled, False otherwise.

runTests

public void runTests (IInvocationContext context, 
                IConfiguration config, 
                ITestInvocationListener listener)

Runs the test.

Parameters
context IInvocationContext: the IInvocationContext to run tests on

config IConfiguration: the IConfiguration to run

listener ITestInvocationListener: the ITestInvocationListener of test results

Throws
DeviceNotAvailableException

shardConfig

public boolean shardConfig (IConfiguration config, 
                IInvocationContext context, 
                IRescheduler rescheduler)

Attempt to shard the configuration into sub-configurations, to be re-scheduled to run on multiple resources in parallel.

If a shard count is greater than 1, it will simply create configs for each shard by setting shard indices and reschedule them. If a shard count is not set,it would fallback to IShardHelper.shardConfig(IConfiguration, IInvocationContext, IRescheduler).

Parameters
config IConfiguration: the current IConfiguration.

context IInvocationContext: the IInvocationContext holding the info of the tests.

rescheduler IRescheduler: the IRescheduler

Returns
boolean true if test was sharded. Otherwise return false

Protected methods

createShardHelper

protected IShardHelper createShardHelper ()

Create an return the IShardHelper to be used.

Returns
IShardHelper