Add README.rst file with description of sample which shows how to use pytest and Twister together. Signed-off-by: Piotr Golyzniak <piotr.golyzniak@nordicsemi.no>
80 lines
3.0 KiB
ReStructuredText
80 lines
3.0 KiB
ReStructuredText
.. zephyr:code-sample:: pytest_shell
|
|
:name: Pytest shell application testing
|
|
|
|
Execute pytest tests against the Zephyr shell.
|
|
|
|
Overview
|
|
********
|
|
|
|
The sample project illustrates usage of pytest framework integrated with
|
|
Twister test runner.
|
|
|
|
A simple application provides basic Zephyr shell interface. Twister builds it
|
|
and then calls pytest in subprocess which runs tests from
|
|
``pytest/test_shell.py`` file. The first test verifies valid response for
|
|
``help`` command, second one verifies if application is able to return
|
|
information about used kernel version. Both tests use ``shell`` fixture, which
|
|
is defined in ``pytest-twister-harness`` plugin. More information about plugin
|
|
can be found :ref:`here <integration_with_pytest>`.
|
|
|
|
Requirements
|
|
************
|
|
|
|
Board (hardware, ``native_sim`` or ``QEMU``) with UART console.
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
Build and run sample by Twister:
|
|
|
|
.. code-block:: console
|
|
|
|
$ ./scripts/twister -vv --platform native_sim -T samples/subsys/testsuite/pytest/shell
|
|
|
|
|
|
Sample Output
|
|
=============
|
|
|
|
.. code-block:: console
|
|
|
|
...
|
|
samples/subsys/testsuite/pytest/shell/pytest/test_shell.py::test_shell_print_help
|
|
INFO: send "help" command
|
|
DEBUG: #: uart:~$ help
|
|
DEBUG: #: Please press the <Tab> button to see all available commands.
|
|
DEBUG: #: You can also use the <Tab> button to prompt or auto-complete all commands or its subcommands.
|
|
DEBUG: #: You can try to call commands with <-h> or <--help> parameter for more information.
|
|
DEBUG: #: Shell supports following meta-keys:
|
|
DEBUG: #: Ctrl + (a key from: abcdefklnpuw)
|
|
DEBUG: #: Alt + (a key from: bf)
|
|
DEBUG: #: Please refer to shell documentation for more details.
|
|
DEBUG: #: Available commands:
|
|
DEBUG: #: clear :Clear screen.
|
|
DEBUG: #: device :Device commands
|
|
DEBUG: #: devmem :Read/write physical memory
|
|
DEBUG: #: Usage:
|
|
DEBUG: #: Read memory at address with optional width:
|
|
DEBUG: #: devmem address [width]
|
|
DEBUG: #: Write memory at address with mandatory width and value:
|
|
DEBUG: #: devmem address <width> <value>
|
|
DEBUG: #: help :Prints the help message.
|
|
DEBUG: #: history :Command history.
|
|
DEBUG: #: kernel :Kernel commands
|
|
DEBUG: #: rem :Ignore lines beginning with 'rem '
|
|
DEBUG: #: resize :Console gets terminal screen size or assumes default in case the
|
|
DEBUG: #: readout fails. It must be executed after each terminal width change
|
|
DEBUG: #: to ensure correct text display.
|
|
DEBUG: #: retval :Print return value of most recent command
|
|
DEBUG: #: shell :Useful, not Unix-like shell commands.
|
|
DEBUG: #: uart:~$
|
|
INFO: response is valid
|
|
PASSED
|
|
samples/subsys/testsuite/pytest/shell/pytest/test_shell.py::test_shell_print_version
|
|
INFO: send "kernel version" command
|
|
DEBUG: #: uart:~$ kernel version
|
|
DEBUG: #: Zephyr version 3.5.99
|
|
DEBUG: #: uart:~$
|
|
INFO: response is valid
|
|
PASSED
|
|
...
|