diff options
| author | David Gibson <david@gibson.dropbear.id.au> | 2025-09-05 16:43:13 +1000 |
|---|---|---|
| committer | Stefano Brivio <sbrivio@redhat.com> | 2025-09-05 13:00:04 +0200 |
| commit | a283ef47b9b3d525e54d1679f0bbc68ed5498e27 (patch) | |
| tree | 85779f99f7906048110b067f95fdee794eecdc9b /test/lib | |
| parent | ca38be0141d17cbdd419fc49fb028a96612aa3b5 (diff) | |
| download | passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.tar passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.tar.gz passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.tar.bz2 passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.tar.lz passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.tar.xz passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.tar.zst passt-a283ef47b9b3d525e54d1679f0bbc68ed5498e27.zip | |
test: Extend test scripts to allow running exeter tests.
Introduce some trivial testcases based on the exeter library. These run
passt and pasta with --help and --version options. Extend our test
scripts to run these tests.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'test/lib')
| -rw-r--r-- | test/lib/exeter | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/lib/exeter b/test/lib/exeter new file mode 100644 index 0000000..3b19bea --- /dev/null +++ b/test/lib/exeter @@ -0,0 +1,58 @@ +#!/bin/sh +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +# PASST - Plug A Simple Socket Transport +# for qemu/UNIX domain socket mode +# +# PASTA - Pack A Subtle Tap Abstraction +# for network namespace/tap device mode +# +# test/lib/exeter - Run exeter tests within the rest of passt's tests +# +# Copyright Red Hat +# Author: David Gibson <david@gibson.dropbear.id.au> + +EXETOOL="$BASEPATH/exeter/exetool/exetool" + +# is_exeter() - Determine if a test file is an exeter program +# $@: Command line to invoke test program +is_exeter() { + $EXETOOL probe -- "$@" +} + +# exeter() - Run each test in an exeter program, logging each test separately +# $@: Command line to invoke exeter test program +exeter() { + STATESETUP="${STATEBASE}/$1" + mkdir -p "${STATESETUP}" + + context_setup_host host + layout_host + + cd test + + __ntests=$($EXETOOL list -- "$@" | wc -l) + if [ $? != 0 ]; then + info "Failed to get exeter manifest for $@" + pause_continue \ + "Press any key to pause test session" \ + "Resuming in " \ + "Paused, press any key to continue" \ + 5 + return + fi + + status_file_start "$* (exeter)" ${__ntests} + [ ${CI} -eq 1 ] && video_link "${1}" + + for __testid in $($EXETOOL list -- "$@"); do + __desc="$($EXETOOL desc -- "$@" -- ${__testid})" + status_test_start "${__desc}" + context_run host "$@" "${__testid}" && status_test_ok || status_test_fail + done + + cd .. + + teardown_context_watch ${PANE_HOST} host +} |
