aboutgitcodebugslistschat
path: root/test/lib
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2025-09-05 16:43:13 +1000
committerStefano Brivio <sbrivio@redhat.com>2025-09-05 13:00:04 +0200
commita283ef47b9b3d525e54d1679f0bbc68ed5498e27 (patch)
tree85779f99f7906048110b067f95fdee794eecdc9b /test/lib
parentca38be0141d17cbdd419fc49fb028a96612aa3b5 (diff)
downloadpasst-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/exeter58
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
+}