From: Logan Gunthorpe Date: Wed, 17 Jul 2019 17:12:55 +0000 (-0600) Subject: check: Add the ability to call a cleanup function after a test ends X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e25f27939668a79ffdad8040701d3d3e0956de33;p=users%2Fsagi%2Fblktests.git check: Add the ability to call a cleanup function after a test ends 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 EXIT'). Reviewed-by: Johannes Thumshirn Signed-off-by: Logan Gunthorpe --- diff --git a/check b/check index 029095e..981058c 100755 --- 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