From 8cb7d5b461f0fc7c49fcb5cd6b0ce8dfcb15fce8 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Tue, 13 Sep 2022 14:35:19 +1000 Subject: 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 --- test/run | 2 ++ 1 file changed, 2 insertions(+) (limited to 'test/run') diff --git a/test/run b/test/run index 9b0227b..58d9b49 100755 --- a/test/run +++ b/test/run @@ -48,6 +48,7 @@ COMMIT="$(git log --oneline --no-decorate -1)" # cleanup() - Remove temporary files cleanup() { + [ ${DEBUG} -eq 1 ] || rm -rf "${STATEBASE}" rm -f /tmp/.passt_test_log_pipe } @@ -176,6 +177,7 @@ else rm -rf "${LOGDIR}" mkdir -p "${LOGDIR}" :> "${LOGFILE}" + STATEBASE="$(mktemp -d --tmpdir passt-tests-XXXXXX)" trap "cleanup" EXIT run_term fi -- cgit v1.2.3