summaryrefslogtreecommitdiffstats
path: root/ctdb/tests/run_tests.sh
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2014-07-04 17:04:10 +1000
committerAmitay Isaacs <amitay@samba.org>2014-07-08 10:17:54 +0200
commite118a36c4ce8299e270278e27c3a5f5f9afb0049 (patch)
treea31b5f364986883540e63da89a6ef933321a14f4 /ctdb/tests/run_tests.sh
parentc324b9f03f85d724dfde8e85f08d5f20fa2796ac (diff)
downloadsamba-e118a36c4ce8299e270278e27c3a5f5f9afb0049.tar.gz
samba-e118a36c4ce8299e270278e27c3a5f5f9afb0049.tar.xz
samba-e118a36c4ce8299e270278e27c3a5f5f9afb0049.zip
ctdb-tests: Shutdown local daemons if the tests exit abnormally
Signed-off-by: Amitay Isaacs <amitay@gmail.com> Pair-Programmed-With: Martin Schwenke <martin@meltin.net> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'ctdb/tests/run_tests.sh')
-rwxr-xr-xctdb/tests/run_tests.sh30
1 files changed, 24 insertions, 6 deletions
diff --git a/ctdb/tests/run_tests.sh b/ctdb/tests/run_tests.sh
index 2ff11ff35a..d705ac17e9 100755
--- a/ctdb/tests/run_tests.sh
+++ b/ctdb/tests/run_tests.sh
@@ -261,6 +261,29 @@ if [ -z "$1" ] ; then
fi
fi
+do_cleanup ()
+{
+ if $TEST_CLEANUP ; then
+ echo "Removing TEST_VAR_DIR=$TEST_VAR_DIR"
+ rm -rf "$TEST_VAR_DIR"
+ else
+ echo "Not cleaning up TEST_VAR_DIR=$TEST_VAR_DIR"
+ fi
+}
+
+cleanup_handler ()
+{
+ if $TEST_CLEANUP ; then
+ if [ -n "$TEST_LOCAL_DAEMONS" -a "$f" = "simple" ] ; then
+ echo "***** shutting down daemons *****"
+ find_and_run_one_test simple/99_daemons_shutdown.sh "$tests_dir"
+ fi
+ fi
+ do_cleanup
+}
+
+trap cleanup_handler SIGINT SIGTERM
+
for f ; do
find_and_run_one_test "$f"
@@ -295,12 +318,7 @@ rm -f "$sf"
echo
-if $TEST_CLEANUP ; then
- echo "Removing TEST_VAR_DIR=$TEST_VAR_DIR"
- rm -rf "$TEST_VAR_DIR"
-else
- echo "Not cleaning up TEST_VAR_DIR=$TEST_VAR_DIR"
-fi
+do_cleanup
if $no_header || $exit_on_fail ; then
exit $status