Running CI Runtime Test Suites Locally

NuttX automatically runs continuous integration (CI) tests on simulator and QEMU targets when a new pull request is submitted. To avoid the tests failing you can also run them locally on your computer prior to submitting a new pull request. This page describes the step by step manual to do so.

Configuring NuttX

NuttX has a simulator target that allows the user to run NuttX as a regular program on a computer. The simulator target with CI test is configured and compiled followingly.

$ cd nuttx
$ ./tools/configure.sh sim:citest
$ make

You should see NuttX shell with built in test applications. Now you can exit the simulator.

nsh> poweroff
$
$ # we're back at the Linux prompt.

Running CI Tests with tools/ci/testrun

Running CI tests locally requires Minicom and Python 3.6 or newer to be installed on the system. Other requirements can be installed with following set of commands.

$ cd tools/ci/testrun/env
$ pip3 install -r requirements.txt
$ cd ..
$ cd script

Now you have everything prepared to run CI tests. The tests themselves are run by following command.

$ python3 -m pytest -m 'common or sim' ./ -B sim -P <nuttx-path> -L <log-path> -R sim -C --json=<log-path>/pytest.json

Where nuttx-path is an absolute path to NuttX root directory and log-path is a user defined directory to which tests log are saved.