From: Colin Walters Date: Fri, 18 Nov 2016 20:07:52 +0000 (-0500) Subject: tests: Support TEST_SKIP_CLEANUP=err X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~43^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a6eb8bbcf6d0e0bbc5163dea1d41fff1706299d5;p=ostree.git tests: Support TEST_SKIP_CLEANUP=err I find myself often wanting to debug interactively failing tests. This makes it more convenient to keep around the temporary directories just for those tests, rather than accumulating tons of tempdirs from the successful tests as well. Closes: #588 Approved by: jlebon --- diff --git a/buildutil/tap-test b/buildutil/tap-test index 6b2eb5c1..c8da31e7 100755 --- a/buildutil/tap-test +++ b/buildutil/tap-test @@ -11,13 +11,24 @@ bn=$(basename $1) tempdir=$(mktemp -d /var/tmp/tap-test.XXXXXX) touch ${tempdir}/.testtmp function cleanup () { - if test -n "${TEST_SKIP_CLEANUP:-}"; then - echo "Skipping cleanup of ${tempdir}" - else if test -f ${tempdir}/.testtmp; then + if test -f ${tempdir}/.testtmp; then rm "${tempdir}" -rf fi - fi } -trap cleanup EXIT +function skip_cleanup() { + echo "Skipping cleanup of ${tempdir}" +} cd ${tempdir} ${srcd}/${bn} -k --tap +rc=$? +case "${TEST_SKIP_CLEANUP:-}" in + no|"") cleanup ;; + err) + if test $rc != 0; then + skip_cleanup + else + cleanup + fi ;; + *) skip_cleanup ;; +esac +exit $rc