aboutgitcodebugslistschat
path: root/test/lib
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2022-09-13 14:35:19 +1000
committerStefano Brivio <sbrivio@redhat.com>2022-09-13 11:12:41 +0200
commit8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8 (patch)
tree8283faa84c398d39581ed31bfc15b0fc564780d6 /test/lib
parent1e4a15398f2f932e290ab222d2d57a47018f2245 (diff)
downloadpasst-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.tar
passt-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.tar.gz
passt-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.tar.bz2
passt-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.tar.lz
passt-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.tar.xz
passt-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.tar.zst
passt-8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8.zip
test: Create common state directories for temporary files
The test scripts create a bunch of temporary files to keep track of internal state. Some are made in /tmp with individual mktemp calls, some go in the passt source directory, and some go in $LOGDIR. This can sometimes make it messy to clean up after failed test runs. Start cleaning this up by creating a single "state" directory ($STATEBASE) in /tmp for all the state or temporary files used by a single test run. Clean it up automatically in cleanup() - except when DEBUG==1, because those files can be useful for debugging test script failures. We create subdirectories under $STATEBASE for each setup function, exposed as $STATESETUP. We also create subdirectories for each test script and expose those to the scripts as __STATEDIR__. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'test/lib')
-rwxr-xr-xtest/lib/setup2
-rwxr-xr-xtest/lib/term2
-rwxr-xr-xtest/lib/test4
3 files changed, 7 insertions, 1 deletions
diff --git a/test/lib/setup b/test/lib/setup
index f1e429c..b9c9e81 100755
--- a/test/lib/setup
+++ b/test/lib/setup
@@ -394,6 +394,8 @@ teardown_demo_podman() {
# $*: Suffix list of setup_*() functions to be called
setup() {
for arg do
+ STATESETUP="${STATEBASE}/${arg}"
+ mkdir -p "${STATESETUP}"
eval setup_${arg}
done
}
diff --git a/test/lib/term b/test/lib/term
index 2355e64..8b8ad56 100755
--- a/test/lib/term
+++ b/test/lib/term
@@ -639,7 +639,7 @@ pause_continue() {
# run_term() - Start tmux session, running entry point, with recording if needed
run_term() {
- TMUX="tmux new-session -s passt_test -ePCAP=$PCAP -eDEBUG=$DEBUG"
+ TMUX="tmux new-session -s passt_test -eSTATEBASE=$STATEBASE -ePCAP=$PCAP -eDEBUG=$DEBUG"
if [ ${CI} -eq 1 ]; then
printf '\e[8;50;240t'
diff --git a/test/lib/test b/test/lib/test
index 0d06afd..3dbae0b 100755
--- a/test/lib/test
+++ b/test/lib/test
@@ -351,6 +351,10 @@ test_one() {
[ ${CI} -eq 1 ] && video_link "${1}"
TEST_ONE_subs="$(list_add_pair "" "__BASEPATH__" "${BASEPATH}")"
+ TEST_ONE_subs="$(list_add_pair "${TEST_ONE_subs}" "__STATESETUP__" "${STATESETUP}")"
+ STATEDIR="${STATEBASE}/${1}"
+ mkdir -p "${STATEDIR}"
+ TEST_ONE_subs="$(list_add_pair "${TEST_ONE_subs}" "__STATEDIR__" "${STATEDIR}")"
TEST_ONE_nok=-1
TEST_ONE_perf_nok=0
TEST_ONE_skip=0