| The shell script run-sample-tests.sh runs selected Zephyr samples against |
| the network test applications Docker container provided by the 'net-tools' |
| Zephyr project, https://github.com/zephyrproject-rtos/net-tools. |
| |
| |
| Installation |
| ************ |
| |
| As a prerequisite it is assumed that Docker is installed and that the |
| 'net-tools' Docker container has been created, see the first bullet point |
| at the net-tools Docker README file |
| https://github.com/zephyrproject-rtos/net-tools/blob/master/README.docker. |
| |
| In essence, the following needs to be done: |
| |
| * Install Docker |
| * Check out the net-tools project from github or update it with west |
| * Change working directory to the net-tools repository |
| * cd docker/ |
| * Run 'docker build -t net-tools .' |
| |
| This creates a Docker image called 'net-tools' which the script will need as |
| its counterpart when testing various network sample applications. |
| |
| |
| Using |
| ***** |
| |
| The scripts/net/run-sample-tests.sh shell script can be used in two ways: |
| |
| 1. From a Zephyr network sample test directory. |
| Example: |
| |
| cd samples/net/gptp |
| $ZEPHYR_BASE/scripts/net/run-sample-tests.sh |
| |
| 2. By giving the test directories as parameters to the runner script. |
| Example: |
| |
| cd $ZEPHYR_BASE |
| ./scripts/net/run-sample-tests.sh samples/net/gptp \ |
| samples/net/sockets/echo_server |
| |
| User can see what samples are supported like this: |
| |
| $ZEPHYR_BASE/scripts/net/run-sample-tests.sh --scan |
| |
| The Docker container and a corresponding 'net-tools0' Docker network is started |
| by the script, as well as Zephyr using native_posix board. IP addresses are |
| assigned to the Docker network, which is a Linux network bridge interface. |
| The default IP addresses are: |
| |
| * Zephyr uses addresses 192.0.2.1 and 2001:db8::1 |
| * Docker net-tools image uses addresses 192.0.2.2 and 2001:db8::2 |
| * The Docker bridge interface uses addresses 192.0.2.254 and 2001:db8::254 |
| |
| The default IP addresses are used by echo_client and mqtt_publisher, but |
| with the echo_server the IP addresses are switched between Zephyr and Docker |
| so that the echo_client application always uses addresses ending in .1 and |
| the echo_server application uses those ending in .2. The script does the IP |
| address setup for each sample test, be it the default ones or the switched |
| ones. |
| |
| When completed, the return value, either from Zephyr or from the Docker |
| container, is returned to the script on Zephyr or Docker application |
| termination. The return value is used as a simple verdict whether the sample |
| passed or failed. |
| |
| |
| Directories |
| *********** |
| |
| The sample test script tries to automatically figure out the Zephyr base |
| directory, which is assumed to be set by the ZEPHYR_BASE environment variable. |
| Should this not be the case, the directory can be set using '-Z' or |
| '--zephyr-dir' command line arguments. The sample test script also assumes |
| that the net-tools git repository containing the Docker networking setup file |
| 'docker.conf' exists at the same directory level as the Zephyr base directory. |
| If the net tools are found elsewhere, the net-tools directory can be set with |
| the 'N' or '--net-tools-dir' command line argument. |
| |
| Help is also available using the 'h' or '--help' argument. |