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 394073024f5f..a71e5e9a9087 100755 --- a/tests/shell/run-tests.sh +++ b/tests/shell/run-tests.sh @@ -43,6 +43,7 @@ usage() { echo " -K : sets KMEMLEAK=y" echo " -R|--without-realroot : sets NFT_TEST_HAS_REALROOT=n" echo " -U|--no-unshare : sets NFT_TEST_UNSHARE_CMD=" + echo " -k|--keep-logs : sets NFT_TEST_KEEP_LOGS=y" echo echo "ENVIRONMENT VARIABLES:" echo " NFT=<PATH> : Path to nft executable" @@ -69,6 +70,7 @@ usage() { echo " NFT_TEST_HAS_UNSHARED=*|y : To indicate to the test whether the test run will be unshared." echo " Test may consider this." echo " This is only honored when \$NFT_TEST_UNSHARE_CMD= is set. Otherwise it's detected." + echo " NFT_TEST_KEEP_LOGS=*|y: Keep the temp directory. On success, it will be deleted by default." echo " TMPDIR=<PATH> : select a different base directory for the result data" } @@ -81,6 +83,7 @@ VERBOSE="$(bool_y "$VERBOSE")" DUMPGEN="$(bool_y "$DUMPGEN")" VALGRIND="$(bool_y "$VALGRIND")" KMEMLEAK="$(bool_y "$KMEMLEAK")" +NFT_TEST_KEEP_LOGS="$(bool_y "$NFT_TEST_KEEP_LOGS")" NFT_TEST_HAS_REALROOT="$NFT_TEST_HAS_REALROOT" NFT_TEST_NO_UNSHARE="$NFT_TEST_NO_UNSHARE" DO_LIST_TESTS= @@ -107,6 +110,9 @@ while [ $# -gt 0 ] ; do usage exit 0 ;; + -k|--keep-logs) + NFT_TEST_KEEP_LOGS=y + ;; -L|--list-tests) DO_LIST_TESTS=y ;; @@ -233,6 +239,7 @@ msg_info "conf: KMEMLEAK=$(printf '%q' "$KMEMLEAK")" msg_info "conf: NFT_TEST_HAS_REALROOT=$(printf '%q' "$NFT_TEST_HAS_REALROOT")" msg_info "conf: NFT_TEST_UNSHARE_CMD=$(printf '%q' "$NFT_TEST_UNSHARE_CMD")" msg_info "conf: NFT_TEST_HAS_UNSHARED=$(printf '%q' "$NFT_TEST_HAS_UNSHARED")" +msg_info "conf: NFT_TEST_KEEP_LOGS=$(printf '%q' "$NFT_TEST_KEEP_LOGS")" msg_info "conf: TMPDIR=$(printf '%q' "$_TMPDIR")" MODPROBE="$(which modprobe)" @@ -258,8 +265,8 @@ NFT_TEST_LATEST="$_TMPDIR/nft-test.latest.$USER" ln -snf "$NFT_TEST_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 echo @@ -471,4 +478,11 @@ if [ "$failed" -gt 0 -a "$NFT_TEST_HAS_REALROOT" != y ] ; then msg_info "test was not running as real root" fi +if [ "$failed" -gt 0 -o "$NFT_TEST_KEEP_LOGS" = y ] ; then + msg_info "check the temp directory \"$NFT_TEST_TMPDIR\" (\"$NFT_TEST_LATEST\")" + msg_info " ls -lad \"$NFT_TEST_LATEST\"/*/*" + msg_info " grep -R ^ \"$NFT_TEST_LATEST\"/" + NFT_TEST_TMPDIR= +fi + [ "$failed" -eq 0 ] -- 2.41.0