test,doc,board: Infamy Made Easy

As of 4768cae6, we can use conserver/telnet to connect to the docker0
bridge IP:90XX, where XX is DUTXX.  This was a great UX improvement
and this patch set aims to further the experience by:

 - allow running Infamy (infix-test container) completely rootless¹
 - reduce the expsed port range 50->10 (can be improved further)
 - use 'podman --publish-all' ports, which allocates ten random
   ports for the exposed Qemu telnet ports
 - add Quick Start Guide to doc/testing.md

This restores the possiblity of running multiple "make test-sh"
instances, e.g., when multiple users share the same server.

The 'console' script included in this commit uses 'podman inspect' to
find the port number for a given DUT, and optional instance.  It takes
either the console/dut number (1-N), or the dut name from the topology.

Also in this commit:
 - set hostname for easy identification (for console script)
 - set conatainer --name to hostname
 - adjust workdir from buildroot to infix/test
 - simplify PS1 and add time to prompt (when did the test finish?)

When running 'make test-sh' the prompt now tells you which instance you
are running, e.g., infmay10.  Calling 'console 1 infamy10' connects to
console 1 (port 9001) on the infamy10 instance.

For more information, see the Quick Start Guide in doc/testing.md.  It
shows how to use the new helper scripts: console and shell.

Fix #227

_______
¹) devs using podman, instead of docker, with slirp4netns installed, can
   run the infix-test container completely rootless.  We like this, and
   as of today podman is our recommendation.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2024-02-25 19:49:27 +01:00
parent 00c2c0c608
commit 5386ec9a3a
8 changed files with 371 additions and 69 deletions
Executable
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
# Enter shell in container running Infamy
testdir=$(dirname "$(readlink -f "$0")")
. "$testdir/.env"
usage()
{
echo "Usage:"
echo " shell [SYSTEM]"
echo "Example:"
echo " shell # Open shell in infamy0"
echo " shell infamy2 # Open shell in infamy2"
exit 1
}
sys=$1
[ -n "$sys" ] || sys=$(infamy)
$(runner) exec -it --workdir "$ixdir/test" "$sys" ./env -C sh