2023-10-17 08:48:15 +02:00
|
|
|
.. include:: /substitutions.rst
|
|
|
|
.. _citests:
|
|
|
|
|
|
|
|
=======================
|
|
|
|
Running CI Test Locally
|
|
|
|
=======================
|
|
|
|
|
|
|
|
NuttX automatically runs continuous integration (CI) tests on
|
|
|
|
`simulator <https://nuttx.apache.org/docs/latest/guides/simulator.html>`__
|
2023-11-23 22:31:11 +01:00
|
|
|
target when new pull request is submitted. To avoid the tests failing you can
|
2023-10-17 08:48:15 +02:00
|
|
|
also run them locally on your computer prior to submiting 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.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ cd nuttx
|
|
|
|
$ ./tools/configure.sh sim:citest
|
|
|
|
$ make
|
|
|
|
|
|
|
|
Now you can run the simulator to check the configuration was successful.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ ./nuttx
|
|
|
|
login: admin
|
|
|
|
password: Administrator
|
|
|
|
|
|
|
|
You should see NuttX shell with built in test applications. Now you can exit
|
|
|
|
the simulator.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
nsh> poweroff
|
|
|
|
$
|
|
|
|
$ # we're back at the Linux prompt.
|
|
|
|
|
|
|
|
Running CI Tests
|
|
|
|
================
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ cd tools/ci/testrun/env
|
|
|
|
$ pip3 install -r requirements.txt
|
|
|
|
$ cd ..
|
|
|
|
$ cd script
|
|
|
|
|
|
|
|
Now you have everything prepared to run CI tests. The tests themself are run
|
|
|
|
by following command.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
$ 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.
|