diff --git a/Documentation/guides/citests.rst b/Documentation/guides/citests.rst new file mode 100644 index 0000000000..e3be2241cf --- /dev/null +++ b/Documentation/guides/citests.rst @@ -0,0 +1,66 @@ +.. include:: /substitutions.rst +.. _citests: + +======================= +Running CI Test Locally +======================= + +NuttX automatically runs continuous integration (CI) tests on +`simulator `__ +target when new pull request is submited. To avoid the tests failing you can +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. diff --git a/Documentation/guides/index.rst b/Documentation/guides/index.rst index 7df430e44c..e8a8f5e253 100644 --- a/Documentation/guides/index.rst +++ b/Documentation/guides/index.rst @@ -17,6 +17,7 @@ Guides pysimcoder.rst customboards.rst customapps.rst + citests.rst zerolatencyinterrupts.rst nestedinterrupts.rst cortexmhardfaults.rst