test: Use new-style contexts for passt pane in the pasta and passt tests

Convert the pasta and passt tests to use new-style context execution
for the things that run in the "passt" frame.  Don't touch the
passt_in_ns or two_guests tests yet, because they run passt inside a
namespace which introduces some additional complications we have yet
to handle.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
David Gibson 2022-09-12 20:56:19 +10:00 committed by Stefano Brivio
parent d9b9c252cd
commit 2f87265d8b
3 changed files with 12 additions and 19 deletions

View file

@ -69,9 +69,7 @@ layout_pasta() {
tmux select-pane -t ${PANE_INFO} -T "test log" tmux select-pane -t ${PANE_INFO} -T "test log"
pane_watch_contexts ${PANE_HOST} host host pane_watch_contexts ${PANE_HOST} host host
pane_watch_contexts ${PANE_PASST} pasta passt
tmux pipe-pane -O -t ${PANE_PASST} "cat >> ${LOGDIR}/pane_passt.log"
tmux select-pane -t ${PANE_PASST} -T "pasta"
info_layout "single pasta instance with namespace" info_layout "single pasta instance with namespace"
@ -104,9 +102,7 @@ layout_passt() {
tmux select-pane -t ${PANE_INFO} -T "test log" tmux select-pane -t ${PANE_INFO} -T "test log"
pane_watch_contexts ${PANE_HOST} host host pane_watch_contexts ${PANE_HOST} host host
pane_watch_contexts ${PANE_PASST} passt passt
tmux pipe-pane -O -t ${PANE_PASST} "cat >> ${LOGDIR}/pane_passt.log"
tmux select-pane -t ${PANE_PASST} -T "passt"
info_layout "single passt instance with guest" info_layout "single passt instance with guest"

View file

@ -33,6 +33,7 @@ setup_distro() {
# setup_passt() - Start qemu and passt # setup_passt() - Start qemu and passt
setup_passt() { setup_passt() {
context_setup_host host context_setup_host host
context_setup_host passt
layout_passt layout_passt
@ -48,11 +49,9 @@ setup_passt() {
[ ${DEBUG} -eq 1 ] && __opts="${__opts} -d" [ ${DEBUG} -eq 1 ] && __opts="${__opts} -d"
[ ${TRACE} -eq 1 ] && __opts="${__opts} --trace" [ ${TRACE} -eq 1 ] && __opts="${__opts} --trace"
pane_run PASST "make clean" context_run passt "make clean"
pane_status PASST context_run passt "make valgrind"
pane_run PASST "make valgrind" context_run_bg passt "valgrind --max-stackframe=$((4 * 1024 * 1024)) --trace-children=yes --vgdb=no --error-exitcode=1 --suppressions=test/valgrind.supp ./passt ${__opts} -f -t 10001 -u 10001 -P passt.pid"
pane_status PASST
pane_run PASST "valgrind --max-stackframe=$((4 * 1024 * 1024)) --trace-children=yes --vgdb=no --error-exitcode=1 --suppressions=test/valgrind.supp ./passt ${__opts} -f -t 10001 -u 10001 -P passt.pid"
sleep 5 sleep 5
pane_run GUEST './qrap 5 qemu-system-$(uname -m)' \ pane_run GUEST './qrap 5 qemu-system-$(uname -m)' \
@ -72,6 +71,7 @@ setup_passt() {
# setup_pasta() - Create a network and user namespace, connect pasta to it # setup_pasta() - Create a network and user namespace, connect pasta to it
setup_pasta() { setup_pasta() {
context_setup_host host context_setup_host host
context_setup_host passt
layout_pasta layout_pasta
@ -82,9 +82,7 @@ setup_pasta() {
pane_run NS "unshare -rUnpf /bin/sh" pane_run NS "unshare -rUnpf /bin/sh"
pane_status NS pane_status NS
pane_run PASST "pstree -p ${__tty_pid} | sed -n 's/.*(\([0-9].*\))$/\1/p'" __target_pid=$(pstree -p ${__tty_pid} | sed -n 's/.*(\([0-9].*\))$/\1/p')
pane_wait PASST
__target_pid="$(pane_parse PASST)"
# Ports: # Ports:
# #
@ -98,7 +96,7 @@ setup_pasta() {
[ ${DEBUG} -eq 1 ] && __opts="${__opts} -d" [ ${DEBUG} -eq 1 ] && __opts="${__opts} -d"
[ ${TRACE} -eq 1 ] && __opts="${__opts} --trace" [ ${TRACE} -eq 1 ] && __opts="${__opts} --trace"
pane_run PASST "./pasta ${__opts} -f -t 10002 -T 10003 -u 10002 -U 10003 -P passt.pid ${__target_pid}" context_run_bg passt "./pasta ${__opts} -f -t 10002 -T 10003 -u 10002 -U 10003 -P passt.pid ${__target_pid}"
sleep 1 sleep 1
} }
@ -311,11 +309,11 @@ teardown_distro() {
# teardown_passt() - Kill qemu, remove passt PID file # teardown_passt() - Kill qemu, remove passt PID file
teardown_passt() { teardown_passt() {
kill $(cat passt_qemu.pid) kill $(cat passt_qemu.pid)
pane_wait GUEST pane_wait GUEST
rm passt.pid rm passt.pid
teardown_context_watch ${PANE_HOST} host teardown_context_watch ${PANE_HOST} host
teardown_context_watch ${PANE_PASST} passt
} }
# teardown_passt() - Exit namespace, kill pasta process # teardown_passt() - Exit namespace, kill pasta process
@ -324,6 +322,7 @@ teardown_pasta() {
pane_wait NS pane_wait NS
teardown_context_watch ${PANE_HOST} host teardown_context_watch ${PANE_HOST} host
teardown_context_watch ${PANE_PASST} passt
} }
# teardown_passt_in_ns() - Exit namespace, kill qemu and pasta, remove pid file # teardown_passt_in_ns() - Exit namespace, kill qemu and pasta, remove pid file

View file

@ -17,6 +17,4 @@ test shutdown: exit code
hout PASST_PID cat passt.pid hout PASST_PID cat passt.pid
host kill __PASST_PID__ host kill __PASST_PID__
sleep 1 sleep 1
passtw
pout EXIT echo $?
check [ "__EXIT__" = "0" ]