Test Command Scheduler

In Tradefed, every single test request goes through the Command Scheduler to be run. So the Command Scheduler is a key component of the harness needed to run tests.

Lifecycle

When a test request is presented to Tradefed (for example, input from the console), it will go through the following events before being run:

  1. Test request is parsed - A test request is usually composed of an XML Tradefed configuration reference followed by options. For example: > run host --class com.android.tradefed.build.BuildInfoTest
  2. Device Manager is requested for device(s) matching the test request - Device Manager allocates a device that matches the test requests. For example, if a Pixel device is requested then Device Manager will look for an available Pixel device.
  3. Test request + device(s) starts as an invocation - Testing is starting.
  4. Device release - Once the invocation is finished, the device allocated will be released and can be allocated for other tests.

Tradefed invocation

An invocation in Tradefed refers to when a test command is currently executing. Devices included in the invocation are marked as allocated and cannot be used by other tests to run.

TF will execute the following steps in this order:

  1. Build and test artifacts download
  2. Target preparation
  3. Test execution
  4. Target clean up
  5. Result reporting

Each step is described in more detail within the Architecture section.