The test output is now all collected in the temporary directory. On success, that directory is deleted. Add an option to always preserve that directory. Signed-off-by: Thomas Haller <thaller@xxxxxxxxxx> --- tests/shell/run-tests.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/shell/run-tests.sh b/tests/shell/run-tests.sh index f3b58e1e200b..8da0cc3d5702 100755 --- a/tests/shell/run-tests.sh +++ b/tests/shell/run-tests.sh @@ -25,6 +25,7 @@ usage() { echo " -K : sets KMEMLEAK=y" echo " -R|--without-realroot : sets NFT_TEST_HAVE_REALROOT=n" echo " -U|--no-unshare : sets NFT_TEST_NO_UNSHARE=y" + echo " -k|--keep-logs : sets NFT_TEST_KEEP_LOGS=y" echo echo "ENVIRONMENT VARIABLES:" echo " NFT=<PATH> : Path to nft executable" @@ -50,6 +51,7 @@ usage() { echo " will not try to unshare. Instead, it uses this command to unshare." echo " Set to empty to not unshare. You may want to export NFT_TEST_IS_UNSHARED=" echo " and NFT_TEST_HAVE_REALROOT= accordingly." + echo " NFT_TEST_KEEP_LOGS=*|y: Keep the temp directory. On success, it will be deleted by default." } NFT_TEST_BASEDIR="$(dirname "$0")" @@ -61,6 +63,7 @@ VERBOSE="$VERBOSE" DUMPGEN="$DUMPGEN" VALGRIND="$VALGRIND" KMEMLEAK="$KMEMLEAK" +NFT_TEST_KEEP_LOGS="$NFT_TEST_KEEP_LOGS" NFT_TEST_HAVE_REALROOT="$NFT_TEST_HAVE_REALROOT" NFT_TEST_NO_UNSHARE="$NFT_TEST_NO_UNSHARE" DO_LIST_TESTS= @@ -87,6 +90,9 @@ while [ $# -gt 0 ] ; do usage exit 0 ;; + -k|--keep-logs) + NFT_TEST_KEEP_LOGS=y + ;; -L|--list-tests) DO_LIST_TESTS=y ;; @@ -202,8 +208,8 @@ chmod 755 "$NFT_TEST_TMPDIR" ln -snf "$NFT_TEST_TMPDIR" "$_TMPDIR/nft-test.latest" -# export the tmp directory for tests. They may use it, but create -# distinct files! It will be deleted on EXIT. +# export the tmp directory for tests. They may use it, but create distinct +# files! On success, it will be deleted on EXIT. See also "--keep-logs" export NFT_TEST_TMPDIR @@ -407,4 +413,12 @@ if [ "$failed" -gt 0 -a "$NFT_TEST_HAVE_REALROOT" != y ] ; then msg_info "test was not running as real root" fi +if [ "$failed" -gt 0 -o "$NFT_TEST_KEEP_LOGS" = y ] ; then + ln -snf "$NFT_TEST_TMPDIR" "$_TMPDIR/nftables-test.latest" + msg_info "check the temp directory \"$NFT_TEST_TMPDIR\" (\"$_TMPDIR/nftables-test.latest\")" + msg_info " ls -lad /tmp/nftables-test.latest/*/*" + msg_info " grep -R ^ /tmp/nftables-test.latest/" + NFT_TEST_TMPDIR= +fi + [ "$failed" -eq 0 ] -- 2.41.0