mirror of
https://passt.top/passt
synced 2025-05-20 08:25:34 +02:00
test: Use context system for guest commands
Extends the context system in the test scripts to allow executing commands within a guest. Do this without requiring an existing network in the guest by using socat to run ssh via a vsock connection. We do need some additional "sleep"s in the tests, because the new faster dispatch means that sometimes we attempt to connect before socat has managed to listen. For now, only use this for the plain "passt" tests. The "passt_in_ns" and other tests have additional complications we still need to deal with. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
a8a437abd6
commit
56e755ba11
10 changed files with 90 additions and 16 deletions
test/lib
|
@ -35,6 +35,7 @@ setup_distro() {
|
|||
setup_passt() {
|
||||
context_setup_host host
|
||||
context_setup_host passt
|
||||
context_setup_host qemu
|
||||
|
||||
layout_passt
|
||||
|
||||
|
@ -55,7 +56,8 @@ setup_passt() {
|
|||
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"
|
||||
sleep 5
|
||||
|
||||
pane_run GUEST './qrap 5 qemu-system-$(uname -m)' \
|
||||
GUEST_CID=94557
|
||||
context_run_bg qemu './qrap 5 qemu-system-$(uname -m)' \
|
||||
' -machine accel=kvm' \
|
||||
' -m '${VMEM}' -cpu host -smp '${VCPUS} \
|
||||
' -kernel ' "/boot/vmlinuz-$(uname -r)" \
|
||||
|
@ -65,8 +67,10 @@ setup_passt() {
|
|||
'virtio-net.napi_tx=1"' \
|
||||
" -device virtio-net-pci,netdev=hostnet0,x-txburst=16384" \
|
||||
" -netdev socket,fd=5,id=hostnet0" \
|
||||
' -pidfile passt_qemu.pid'
|
||||
pane_status GUEST
|
||||
" -pidfile passt_qemu.pid" \
|
||||
" -device vhost-vsock-pci,guest-cid=$GUEST_CID"
|
||||
|
||||
context_setup_guest guest $GUEST_CID
|
||||
}
|
||||
|
||||
# setup_pasta() - Create a network and user namespace, connect pasta to it
|
||||
|
@ -307,11 +311,12 @@ teardown_distro() {
|
|||
# teardown_passt() - Kill qemu, remove passt PID file
|
||||
teardown_passt() {
|
||||
kill $(cat passt_qemu.pid)
|
||||
pane_wait GUEST
|
||||
|
||||
rm passt.pid
|
||||
|
||||
teardown_context_watch ${PANE_HOST} host
|
||||
teardown_context_watch ${PANE_PASST} passt
|
||||
teardown_context_watch ${PANE_GUEST} qemu guest
|
||||
}
|
||||
|
||||
# teardown_passt() - Exit namespace, kill pasta process
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue