From 89b49205391105c6ce2b058531c79d939fe97007 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Wed, 7 Dec 2016 09:42:46 +1100 Subject: [PATCH] ctdb-tests: Add tests for takeover helper Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- ctdb/tests/run_tests.sh | 3 +- ctdb/tests/takeover_helper/000.sh | 22 ++++ ctdb/tests/takeover_helper/010.sh | 33 ++++++ ctdb/tests/takeover_helper/011.sh | 33 ++++++ ctdb/tests/takeover_helper/012.sh | 33 ++++++ ctdb/tests/takeover_helper/013.sh | 33 ++++++ ctdb/tests/takeover_helper/014.sh | 33 ++++++ ctdb/tests/takeover_helper/015.sh | 39 +++++++ ctdb/tests/takeover_helper/016.sh | 36 +++++++ ctdb/tests/takeover_helper/017.sh | 36 +++++++ ctdb/tests/takeover_helper/018.sh | 34 ++++++ ctdb/tests/takeover_helper/019.sh | 37 +++++++ ctdb/tests/takeover_helper/020.sh | 36 +++++++ ctdb/tests/takeover_helper/021.sh | 39 +++++++ ctdb/tests/takeover_helper/022.sh | 40 +++++++ ctdb/tests/takeover_helper/023.sh | 41 ++++++++ ctdb/tests/takeover_helper/024.sh | 43 ++++++++ ctdb/tests/takeover_helper/025.sh | 37 +++++++ ctdb/tests/takeover_helper/026.sh | 41 ++++++++ ctdb/tests/takeover_helper/110.sh | 29 ++++++ ctdb/tests/takeover_helper/111.sh | 40 +++++++ ctdb/tests/takeover_helper/120.sh | 40 +++++++ ctdb/tests/takeover_helper/121.sh | 40 +++++++ ctdb/tests/takeover_helper/122.sh | 40 +++++++ ctdb/tests/takeover_helper/130.sh | 41 ++++++++ ctdb/tests/takeover_helper/131.sh | 40 +++++++ ctdb/tests/takeover_helper/132.sh | 42 ++++++++ ctdb/tests/takeover_helper/140.sh | 32 ++++++ ctdb/tests/takeover_helper/150.sh | 31 ++++++ ctdb/tests/takeover_helper/160.sh | 31 ++++++ ctdb/tests/takeover_helper/210.sh | 29 ++++++ ctdb/tests/takeover_helper/211.sh | 40 +++++++ ctdb/tests/takeover_helper/220.sh | 40 +++++++ ctdb/tests/takeover_helper/230.sh | 41 ++++++++ ctdb/tests/takeover_helper/240.sh | 32 ++++++ ctdb/tests/takeover_helper/250.sh | 31 ++++++ ctdb/tests/takeover_helper/260.sh | 31 ++++++ ctdb/tests/takeover_helper/scripts/local.sh | 109 ++++++++++++++++++++ ctdb/wscript | 1 + 39 files changed, 1408 insertions(+), 1 deletion(-) create mode 100755 ctdb/tests/takeover_helper/000.sh create mode 100755 ctdb/tests/takeover_helper/010.sh create mode 100755 ctdb/tests/takeover_helper/011.sh create mode 100755 ctdb/tests/takeover_helper/012.sh create mode 100755 ctdb/tests/takeover_helper/013.sh create mode 100755 ctdb/tests/takeover_helper/014.sh create mode 100755 ctdb/tests/takeover_helper/015.sh create mode 100755 ctdb/tests/takeover_helper/016.sh create mode 100755 ctdb/tests/takeover_helper/017.sh create mode 100755 ctdb/tests/takeover_helper/018.sh create mode 100755 ctdb/tests/takeover_helper/019.sh create mode 100755 ctdb/tests/takeover_helper/020.sh create mode 100755 ctdb/tests/takeover_helper/021.sh create mode 100755 ctdb/tests/takeover_helper/022.sh create mode 100755 ctdb/tests/takeover_helper/023.sh create mode 100755 ctdb/tests/takeover_helper/024.sh create mode 100755 ctdb/tests/takeover_helper/025.sh create mode 100755 ctdb/tests/takeover_helper/026.sh create mode 100755 ctdb/tests/takeover_helper/110.sh create mode 100755 ctdb/tests/takeover_helper/111.sh create mode 100755 ctdb/tests/takeover_helper/120.sh create mode 100755 ctdb/tests/takeover_helper/121.sh create mode 100755 ctdb/tests/takeover_helper/122.sh create mode 100755 ctdb/tests/takeover_helper/130.sh create mode 100755 ctdb/tests/takeover_helper/131.sh create mode 100755 ctdb/tests/takeover_helper/132.sh create mode 100755 ctdb/tests/takeover_helper/140.sh create mode 100755 ctdb/tests/takeover_helper/150.sh create mode 100755 ctdb/tests/takeover_helper/160.sh create mode 100755 ctdb/tests/takeover_helper/210.sh create mode 100755 ctdb/tests/takeover_helper/211.sh create mode 100755 ctdb/tests/takeover_helper/220.sh create mode 100755 ctdb/tests/takeover_helper/230.sh create mode 100755 ctdb/tests/takeover_helper/240.sh create mode 100755 ctdb/tests/takeover_helper/250.sh create mode 100755 ctdb/tests/takeover_helper/260.sh create mode 100644 ctdb/tests/takeover_helper/scripts/local.sh diff --git a/ctdb/tests/run_tests.sh b/ctdb/tests/run_tests.sh index c39b92dcd85..f128d959252 100755 --- a/ctdb/tests/run_tests.sh +++ b/ctdb/tests/run_tests.sh @@ -257,7 +257,8 @@ export TEST_SCRIPTS_DIR="${test_dir}/scripts" # If no tests specified then run some defaults if [ -z "$1" ] ; then if [ -n "$TEST_LOCAL_DAEMONS" ] ; then - set -- onnode takeover tool eventscripts cunit eventd shellcheck simple + set -- onnode takeover takeover_helper tool eventscripts \ + cunit eventd shellcheck simple else set -- simple complex fi diff --git a/ctdb/tests/takeover_helper/000.sh b/ctdb/tests/takeover_helper/000.sh new file mode 100755 index 00000000000..3cb9635ad3a --- /dev/null +++ b/ctdb/tests/takeover_helper/000.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, no IPs" + +setup_ctdbd </dev/null || echo) + if [ -n "$pid" ] ; then + kill $pid || true + rm -f "$ctdbd_pidfile" + fi + rm -f "$ctdbd_socket" +} + +setup_ctdbd () +{ + debug "Setting up fake ctdbd" + + $VALGRIND fake_ctdbd -d "$FAKE_CTDBD_DEBUGLEVEL" \ + -s "$ctdbd_socket" -p "$ctdbd_pidfile" + # This current translates to a 6 second timeout for the + # important controls + ctdb --socket $ctdbd_socket setvar TakeoverTimeout 2 + test_cleanup cleanup_ctdbd +} + +ctdbd_getpid () +{ + cat "$ctdbd_pidfile" +} + +# Render non-printable characters. The helper prints the status as +# binary, so render it for easy comparison. +result_filter () +{ + sed -e 's|ctdb-takeover\[[0-9]*\]: ||' +} + +ctdb_cmd () +{ + echo Running: ctdb -d "$CTDB_DEBUGLEVEL" --socket $ctdbd_socket "$@" + ctdb -d "$CTDB_DEBUGLEVEL" --socket $ctdbd_socket "$@" +} + +test_ctdb_ip_all () +{ + unit_test ctdb -d "$CTDB_DEBUGLEVEL" \ + --socket $ctdbd_socket ip all || exit $? +} + +takeover_helper_out="${TEST_VAR_DIR}/takover_helper.out" + +takeover_helper_format_outfd () +{ + od -A n -t d4 "$takeover_helper_out" | sed -e 's|^[[:space:]]*||' +} + +test_takeover_helper () +{ + ( + export CTDB_DEBUGLEVEL="$HELPER_DEBUGLEVEL" + export CTDB_LOGGING="file:" + unit_test ctdb_takeover_helper 3 "$ctdbd_socket" "$@" \ + 3>"$takeover_helper_out" + ) || exit $? + + case "$required_rc" in + 255) _t="-1" ;; + *) _t="$required_rc" ;; + esac + ok "$_t" + + unit_test_notrace takeover_helper_format_outfd + _ret=$? + rm "$takeover_helper_out" + [ $? -eq 0 ] || exit $? +} diff --git a/ctdb/wscript b/ctdb/wscript index 66959cde091..b951dd69f6c 100644 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -838,6 +838,7 @@ def build(bld): 'shellcheck', 'simple', 'takeover', + 'takeover_helper', 'tool' ]