Skip to content

Test Definitions

A test suite works with and without LAVA. The following two sets of automated tests are supported.

  • automated/linux/
  • automated/android/

For each test case, both the test script and the corresponding test definition files are provided in the same folder and are named after the test case name. Test scripts are self-contained and work independently. Test definition files in YAML format are provided for test runs with local test-runner and within LAVA.


Installing the latest development version:

git clone
cd ./test-definitions
. ./automated/bin/
pip install -r ${REPO_PATH}/automated/utils/requirements.txt

If the above succeeds, try:

test-runner -h

Running test

Running test script


cd ./automated/linux/smoke/

Skip package installation:

./ -s true


cd ./automated/android/dd-wr-speed/

Specify SN when more than one device connected:

./ -s "serial_no"

Specify other params:

./ -i "10" -p "/dev/block/mmcblk1p1"

Using test-runner

single test run

test-runner -d ./automated/linux/smoke/smoke.yaml

skip package install:

test-runner -d ./automated/linux/smoke/smoke.yaml -s

running test plan

Run a set of tests defined in agenda file:

test-runner -p ./plans/linux-example.yaml

Apply test plan overlay to skip, amend or add tests:

test-runner -p ./plans/linux-example.yaml -O test-plan-overlay-example.yaml

Collecting result

Using test script

Test script normally puts test log and parsed results to its own output directory. e.g.


Using test-runner

test-runner needs a separate directory outside the repo to store test and result files. The directory defaults to $HOME/output and can be changed with -o <dir>. test-runner converts test definition file to and then parses its stdout. Results will be saved to results.{json,csv} by test. e.g.


When using the same output directory for multiple tests, test-runner combines results from all tests and save them to ${OUTPUT}/results.{json,csv}. e.g.


More details on test-runner usage in test-runner docs

Generating documentation

Full docs are generated from existing YAML files. Resulting markdown files are not stored in the repository. In order to generate documentation locally one needs to follow the steps below:

  1. create and activate virtualenv
    virtualenv -p python3 venv source venv/bin/activate
  2. install requirements
    pip install -r mkdocs_plugin/requirements.txt
  3. run mkdocs

    • local http server
      mkdocs serve
      This will start small http server on

    • build static docs
      mkdocs build
      This will convert all generated markdown files to HTML files. By default files are stored in 'site' directory. See mkdocs documentation for more details.


Please use Github for pull requests: is a read-only mirror. New changes in the github repo will be pushed to the mirror every 10 minutes.

Refer to test writing guidelines to modify or add test.

Changes need to be able to pass sanity check, which by default checks files in the most recent commit:


To develop locally, there are Dockerfiles in test/ that can be used to simulate target environments. The easiest way to use is to run [debian|centos]. will run, and then build the Docker environment specified, run plans/linux-example.yaml, and then drop into a bash shell inside the container so that things like /root/output can be inspected. It is not (yet) a pass/fail test; merely a development helper and validation environment.

For full documentation visit