summaryrefslogtreecommitdiffstats
path: root/ctdb/tests/onnode/scripts
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2012-04-16 15:29:44 +1000
committerMartin Schwenke <martin@meltin.net>2012-04-16 15:57:16 +1000
commit8c5fdb40cf950552fd094820b998bda9a580ed03 (patch)
treebcee48500201a63531b466ec4f162af02fb1e018 /ctdb/tests/onnode/scripts
parent006b18dec4d9781fc7c64b249e47aa3cf2b99d0c (diff)
downloadsamba-8c5fdb40cf950552fd094820b998bda9a580ed03.tar.gz
samba-8c5fdb40cf950552fd094820b998bda9a580ed03.tar.xz
samba-8c5fdb40cf950552fd094820b998bda9a580ed03.zip
tests/onnode - Restructure according to new convention
Signed-off-by: Martin Schwenke <martin@meltin.net> (This used to be ctdb commit 4c87888b2a559c0d1f285919a42de450a537a02f)
Diffstat (limited to 'ctdb/tests/onnode/scripts')
-rw-r--r--ctdb/tests/onnode/scripts/local.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/ctdb/tests/onnode/scripts/local.sh b/ctdb/tests/onnode/scripts/local.sh
new file mode 100644
index 0000000000..a990c695f8
--- /dev/null
+++ b/ctdb/tests/onnode/scripts/local.sh
@@ -0,0 +1,88 @@
+# Hey Emacs, this is a -*- shell-script -*- !!! :-)
+
+# Set indirectly by run_tests at top level.
+unset CTDB_NODES_SOCKETS
+
+# Default to just "onnode".
+: ${ONNODE:=onnode}
+
+# Augment PATH with relevant stubs/ directories.
+
+if [ -d "${TEST_SUBDIR}/stubs" ] ; then
+ PATH="${TEST_SUBDIR}/stubs:$PATH"
+fi
+
+# Find CTDB nodes file.
+if [ -z "$CTDB_NODES_FILE" ] ; then
+ if [ -r "${TEST_SUBDIR}/nodes" ] ; then
+ CTDB_NODES_FILE="${TEST_SUBDIR}/nodes"
+ else
+ CTDB_NODES_FILE="${CTDB_BASE:-/etc/ctdb}/nodes"
+ fi
+fi
+
+export CTDB_NODES_FILE
+
+export ONNODE_TESTS_VAR_DIR="${TEST_SUBDIR}/var"
+mkdir -p "$ONNODE_TESTS_VAR_DIR"
+
+if [ -z "$CTDB_BASE" ] ; then
+ export CTDB_BASE=$(dirname "$CTDB_NODES_FILE")
+fi
+
+define_test ()
+{
+ _f=$(basename "$0")
+
+ echo "$_f $1 - $2"
+}
+
+# Set output for ctdb command. Option 1st argument is return code.
+ctdb_set_output ()
+{
+ _out="$ONNODE_TESTS_VAR_DIR/ctdb.out"
+ cat >"$_out"
+
+ _rc="$ONNODE_TESTS_VAR_DIR/ctdb.rc"
+ echo "${1:-0}" >"$_rc"
+
+ trap "rm -f $_out $_rc" 0
+}
+
+required_result ()
+{
+ required_rc="${1:-0}"
+ required_output=$(cat)
+}
+
+simple_test ()
+{
+ _sort="cat"
+ if [ "$1" = "-s" ] ; then
+ shift
+ _sort="sort"
+ fi
+ _out=$("$@" 2>&1)
+ _rc=$?
+ _out=$(echo "$_out" | $_sort )
+
+ if [ "$_out" = "$required_output" -a $_rc = $required_rc ] ; then
+ echo "PASSED"
+ else
+ cat <<EOF
+CTDB_NODES_FILE="${CTDB_NODES_FILE}"
+CTDB_BASE="$CTDB_BASE"
+$(which ctdb)
+
+##################################################
+Required output (Exit status: ${required_rc}):
+##################################################
+$required_output
+##################################################
+Actual output (Exit status: ${_rc}):
+##################################################
+$_out
+EOF
+ return 1
+ fi
+}