From: Tomi Ollila Date: Tue, 23 May 2017 18:54:24 +0000 (+0300) Subject: test-lib.sh: add "atexit" functionality X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=eb157f8841b93a0df241b815e30ac54ca81cc83d;p=notmuch.git test-lib.sh: add "atexit" functionality New function at_exit_function registers given function to be called at script termination. Functions so registered are called in the reverse order of their registration; no arguments are passed. Function is called only once; re-adding with function name already registered will remove previous registration. New function rm_exit_function can be used to remove registration. Modules (and possibly test-lib.sh functions) in future commits will register such functions. --- diff --git a/test/test-lib.sh b/test/test-lib.sh index 988b00af..37f8ddfa 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -219,10 +219,21 @@ test_fixed=0 test_broken=0 test_success=0 +declare -a _exit_functions=() + +at_exit_function () { + _exit_functions=($1 ${_exit_functions[@]/$1}) +} + +rm_exit_function () { + _exit_functions=(${_exit_functions[@]/$1}) +} + _exit_common () { code=$? trap - EXIT set +ex + for _fn in ${_exit_functions[@]}; do $_fn; done rm -rf "$TEST_TMPDIR" }