77 lines
3.2 KiB
Plaintext
77 lines
3.2 KiB
Plaintext
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.
|