| The shell script run-sample-tests.sh runs a few Zephyr samples against the |
| network test applications 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 is meant to be run from a |
| Zephyr network sample test directory. Currently the following samples are |
| supported: |
| |
| * samples/net/sockets/echo_client |
| * samples/net/sockets/echo_server |
| * samples/net/mqtt_publisher |
| |
| The applications to run in the net-tools Docker container are selected based |
| on the base name of the sample directory, for echo_client the echo_server |
| application is started from the Docker container, and with echo_server |
| echo_client is started in the Docker container. With mqtt_publisher mosquitto |
| MQTT server is run in the Docker container. |
| |
| The Docker container and a corresponding 'net-tools0' Docker network is started |
| by the script, as well as Zephyr using native_posix. 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. |