From eb157f8841b93a0df241b815e30ac54ca81cc83d Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Tue, 23 May 2017 21:54:24 +0300 Subject: [PATCH] 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. --- test/test-lib.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) 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" } -- 2.43.0