source code: py/test/test_lists/STATION_BASED.md

Station-Based Testing

“Station-based testing” is running Goofy on a fixture, and perform tests to DUT (device under test). (Usually, Goofy is run by the DUT itself.) This is useful for testing:

  • Headless devices

  • Low-end devices

  • Non-chromeos devices which Goofy cannot run on it directly

station_based.test_list.json is a base test list for station based test. You can use it as an example, customize it to fit your requirement.

Useful Concepts

Usually, a station-based test list contains the following parts:

  • Station Setup: Only need to run once when device boots up, for example,

    • Setup network connection

    • Initialize third party fixture

    Override StationSetupItems in your test list to meet your requirement.

  • Station Test Loop: An infinite loop that will run forever, including the following parts:

    • StationLoopStart: Preparation tasks for each DUT.

      • StationLoopItemsBeforeConnection: These will be run before device is connected.

      • ConnectDevice: Ask and wait for device connection.

      • FactoryStateSetup: Setup FactoryState of station.

    • StationLoopMain: Test items for each DUT.

    • StationLoopEnd: Clean up.

      • FactoryStateCleanup: Cleanup FactoryState of station.

      • DisconnectDevice: Ask and wait for device disconnection.

      • StationLoopItemsAfterDisconnection: These will be run after device is disconnected.

    Place your test items into StationLoopMain, and optionally customize StationLoopItemsBeforeConnection or StationLoopItemsAfterDisconnection if extra tasks need to be done at those time point. If your device is not running Goofy (or be more specific, the FactoryState server), you can override FactoryStateSetup and FactoryStateCleanup to stop copying state from / to DUT.