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.