]> www.infradead.org Git - users/hch/blktests.git/commitdiff
check: Add the ability to call a cleanup function after a test ends
authorLogan Gunthorpe <logang@deltatee.com>
Wed, 17 Jul 2019 17:12:55 +0000 (11:12 -0600)
committerOmar Sandoval <osandov@osandov.com>
Mon, 29 Jul 2019 17:13:14 +0000 (10:13 -0700)
In order to ensure tests properly clean themselves up, even if
they are subject to interruption, add the ability to call a test
specified function at cleanup time.

Any test can call _register_test_cleanup with the first argument
as a function to call after the test ends or is interrupted
(similar to using 'trap <func> EXIT').

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
check

diff --git a/check b/check
index 029095e7cf387914e8aefc0343024406400159bd..981058c59c12bb0148e3c7b46cf4f0b61db0c749 100755 (executable)
--- a/check
+++ b/check
@@ -288,7 +288,15 @@ _output_test_run() {
        ) | column -t -s $'\t'
 }
 
+_register_test_cleanup() {
+       TEST_CLEANUP=$1
+}
+
 _cleanup() {
+       if [[ -v TEST_CLEANUP ]]; then
+               ${TEST_CLEANUP}
+       fi
+
        if [[ "${TMPDIR:-}" ]]; then
                rm -rf "$TMPDIR"
                unset TMPDIR
@@ -337,6 +345,7 @@ _call_test() {
        fi
        $LOGGER_PROG "run blktests $TEST_NAME"
 
+       unset TEST_CLEANUP
        trap _cleanup EXIT
        if ! TMPDIR="$(mktemp --tmpdir -p "$OUTPUT" -d "tmpdir.${TEST_NAME//\//.}.XXX")"; then
                return