---
title: "OpenTitan System Tests"
---

System tests are end-to-end tests for the whole OpenTitan system. They operate
on build outputs (typically in `build-bin`) and can be used to check that the
full system, consisting of software, hardware, and tooling, works as expected.

Tests can be executed against different target platforms (such as FPGAs or
simulations), even though not all OpenTitan-supported targets are supported at
the moment.

## Available tests

* `earlgrey/test_sim_verilator.py`: Run various software tests against a
  Verilator-built simulation of the Earl Grey design.
* `earlgrey/test_fpga_cw310.py`: Run various software tests against the
  Earl Grey design running on a ChipWhisperer CW310 FPGA board.
* `earlgrey/test_fpga_nexysvideo.py`: Run various software tests against the
  Earl Grey design running on a Nexys Video FPGA board.

## Run the tests

### Prerequisites

Before the tests can be run, the various components of OpenTitan need to be
built and present in the `BIN_DIR` directory (typically `$REPO_TOP/build-bin`).

Alternatively, the tests can be executed against any pre-built OpenTitan
snapshot available from GitHub releases, or from CI.

To test build artifacts from CI follow these steps:

* Go to an individual build job in the
  ["CI" pipelines of Azure Pipelines](https://dev.azure.com/lowrisc/opentitan/_build?definitionId=9&_a=summary).
  (The page where the individual steps for a single change are listed, not the
  job overview page.)
* In the information bar on the top click on a link labeled "5 published"
  (or something similar). It will take you to a page titeled "Artifacts".
* Expand the "opentitan-dist" artifact, and download the file
  `opentitan-snapshot-xxx.tar.xz`.
* Untar this file and set the `BIN_DIR` environment variable to point to the
  extracted directory, for example:

  ```sh
  tar -xf opentitan-snapshot-20191101-1-2462-g3ad4fd1b.tar.xz
  export BIN_DIR=$PWD/opentitan-snapshot-20191101-1-2462-g3ad4fd1b
  ```

### Configuration

Tests running on FPGA boards need some configuration to help with the discovery
of things like the UART port. To configure these settings, copy the
configuration file example from `test/systemtest/test-localconf.yaml.example`
to one of the supported configuration file locations:

* `$OPENTITAN_TEST_LOCALCONF`
* `$XDG_CONFIG_HOME/opentitan/test-localconf.yaml`
* `$HOME/.config/opentitan/test-localconf.yaml`

### Test execution

The pytest documentation gives a good overview of the available options to run
tests in the [Usage and Invocations](https://docs.pytest.org/en/stable/usage.html)
chapter. Here's a quick reference.

```sh
# Run all tests
pytest test/systemtest

# Run tests in a specific file
pytest test/systemtest/earlgrey/test_sim_verilator.py

# Run a specific test in a specific parametrization
pytest test/systemtest/earlgrey/test_sim_verilator.py -k test_apps_selfchecking[usbdev_test]

# Run tests with more verbose output
pytest test/systemtest -sv --log-cli-level=DEBUG
```
