mirror of
https://github.com/samba-team/samba.git
synced 2025-10-12 23:33:18 +03:00
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
109 lines
2.2 KiB
Bash
109 lines
2.2 KiB
Bash
# Hey Emacs, this is a -*- shell-script -*- !!! :-)
|
|
|
|
if "$TEST_VERBOSE" ; then
|
|
debug () { echo "$@" ; }
|
|
else
|
|
debug () { : ; }
|
|
fi
|
|
|
|
. "${TEST_SCRIPTS_DIR}/script_install_paths.sh"
|
|
|
|
PATH="${PATH}:${CTDB_SCRIPTS_TOOLS_HELPER_DIR}"
|
|
PATH="${PATH}:${CTDB_SCRIPTS_HELPER_BINDIR}"
|
|
|
|
setup_ctdb_base "$CTDB_TEST_TMP_DIR" "ctdb-etc"
|
|
|
|
ctdbd_socket=$(ctdb-path socket "ctdbd")
|
|
ctdbd_pidfile=$(ctdb-path pidfile "ctdbd")
|
|
ctdbd_dbdir=$(ctdb-path vardir append "db")
|
|
|
|
define_test ()
|
|
{
|
|
_f=$(basename "$0" ".sh")
|
|
|
|
printf "%-28s - %s\n" "$_f" "$1"
|
|
|
|
if [ -z "$FAKE_CTDBD_DEBUGLEVEL" ] ; then
|
|
FAKE_CTDBD_DEBUGLEVEL="ERR"
|
|
fi
|
|
if [ -z "$HELPER_DEBUGLEVEL" ] ; then
|
|
HELPER_DEBUGLEVEL="NOTICE"
|
|
fi
|
|
if [ -z "$CTDB_DEBUGLEVEL" ] ; then
|
|
CTDB_DEBUGLEVEL="ERR"
|
|
fi
|
|
}
|
|
|
|
cleanup_ctdbd ()
|
|
{
|
|
debug "Cleaning up fake ctdbd"
|
|
|
|
pid=$(cat "$ctdbd_pidfile" 2>/dev/null || echo)
|
|
if [ -n "$pid" ] ; then
|
|
kill $pid || true
|
|
rm -f "$ctdbd_pidfile"
|
|
fi
|
|
rm -f "$ctdbd_socket"
|
|
rm -rf "$ctdbd_dbdir"
|
|
}
|
|
|
|
setup_ctdbd ()
|
|
{
|
|
debug "Setting up fake ctdbd"
|
|
|
|
mkdir -p "$ctdbd_dbdir"
|
|
$VALGRIND fake_ctdbd -d "$FAKE_CTDBD_DEBUGLEVEL" \
|
|
-s "$ctdbd_socket" -p "$ctdbd_pidfile" \
|
|
-D "$ctdbd_dbdir"
|
|
# This current translates to a 6 second timeout for the
|
|
# important controls
|
|
ctdb setvar TakeoverTimeout 2
|
|
test_cleanup cleanup_ctdbd
|
|
}
|
|
|
|
# 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" "$@"
|
|
ctdb -d "$CTDB_DEBUGLEVEL" "$@"
|
|
}
|
|
|
|
test_ctdb_ip_all ()
|
|
{
|
|
unit_test ctdb -d "$CTDB_DEBUGLEVEL" ip all || exit $?
|
|
}
|
|
|
|
takeover_helper_out="${CTDB_TEST_TMP_DIR}/takover_helper.out"
|
|
|
|
takeover_helper_format_outfd ()
|
|
{
|
|
od -A n -t d4 "$takeover_helper_out" | sed -e 's|[[:space:]]*||g'
|
|
}
|
|
|
|
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"
|
|
[ $_ret -eq 0 ] || exit $_ret
|
|
}
|