diff options
author | Martin Schwenke <martin@meltin.net> | 2015-03-17 20:12:22 +1100 |
---|---|---|
committer | Amitay Isaacs <amitay@samba.org> | 2015-03-23 12:23:12 +0100 |
commit | 2cb2aa58d003980af777bf37fbabbd91cf859fea (patch) | |
tree | 93cbf7a049dfe563a68120ecaea22e393f744615 /ctdb | |
parent | 16c79eb8873b4c16db3ba01f0cacfdafa54e7369 (diff) | |
download | samba-2cb2aa58d003980af777bf37fbabbd91cf859fea.tar.gz |
ctdb-tests: Add "ctdb reloadnodes" unit tests
A basic test and some for cross-node consistency checking.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb')
-rw-r--r-- | ctdb/tests/tool/scripts/local.sh | 19 | ||||
-rwxr-xr-x | ctdb/tests/tool/stubby.reloadnodes.001.sh | 33 | ||||
-rwxr-xr-x | ctdb/tests/tool/stubby.reloadnodes.002.sh | 34 | ||||
-rwxr-xr-x | ctdb/tests/tool/stubby.reloadnodes.003.sh | 37 |
4 files changed, 120 insertions, 3 deletions
diff --git a/ctdb/tests/tool/scripts/local.sh b/ctdb/tests/tool/scripts/local.sh index a6df54b1b05..6cdf4c5089f 100644 --- a/ctdb/tests/tool/scripts/local.sh +++ b/ctdb/tests/tool/scripts/local.sh @@ -44,13 +44,26 @@ setup_natgw () setup_nodes () { - debug "Setting up CTDB_NODES" + _pnn="$1" + + _v="CTDB_NODES${_pnn:+_}${_pnn}" + debug "Setting up ${_v}" # These will accumulate, 1 per test... but will be cleaned up at # the end. - export CTDB_NODES=$(mktemp --tmpdir="$TEST_VAR_DIR") + eval export "${_v}"=$(mktemp --tmpdir="$TEST_VAR_DIR") + + eval _f="\${${_v}}" + cat >"$_f" - cat >"$CTDB_NODES" + # You can't be too careful about what might be in the + # environment... so clean up when setting the default variable. + if [ -z "$_pnn" ] ; then + _n=$(wc -l "$CTDB_NODES" | awk '{ print $1 }') + for _i in $(seq 0 $_n) ; do + eval unset "CTDB_NODES_${_i}" + done + fi } simple_test () diff --git a/ctdb/tests/tool/stubby.reloadnodes.001.sh b/ctdb/tests/tool/stubby.reloadnodes.001.sh new file mode 100755 index 00000000000..7f54de7c22c --- /dev/null +++ b/ctdb/tests/tool/stubby.reloadnodes.001.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, no change" + +setup_nodes <<EOF +192.168.20.41 +192.168.20.42 +192.168.20.43 +EOF + +ok <<EOF +Reloading nodes file on node 1 +ctdb_ctrl_reload_nodes_file: node 1 +Reloading nodes file on node 2 +ctdb_ctrl_reload_nodes_file: node 2 +Reloading nodes file on node 0 +ctdb_ctrl_reload_nodes_file: node 0 +EOF + +simple_test <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +VNNMAP +654321 +0 +1 +2 +EOF diff --git a/ctdb/tests/tool/stubby.reloadnodes.002.sh b/ctdb/tests/tool/stubby.reloadnodes.002.sh new file mode 100755 index 00000000000..61b14381f26 --- /dev/null +++ b/ctdb/tests/tool/stubby.reloadnodes.002.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, no change, inconsistent file on 1" + +setup_nodes <<EOF +192.168.20.41 +192.168.20.42 +192.168.20.43 +EOF + +setup_nodes 1 <<EOF +192.168.20.41 +#192.168.20.42 +192.168.20.43 +EOF + +required_result 255 <<EOF +ERROR: Node file on node 1 differs from current node (0) +EOF + +simple_test <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +VNNMAP +654321 +0 +1 +2 +EOF diff --git a/ctdb/tests/tool/stubby.reloadnodes.003.sh b/ctdb/tests/tool/stubby.reloadnodes.003.sh new file mode 100755 index 00000000000..e5e02984fa2 --- /dev/null +++ b/ctdb/tests/tool/stubby.reloadnodes.003.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, missing file on 1" + +setup_nodes <<EOF +192.168.20.41 +192.168.20.42 +192.168.20.43 +EOF + +setup_nodes 1 <<EOF +192.168.20.41 +#192.168.20.42 +192.168.20.43 +EOF + +rm "$CTDB_NODES_1" + +required_result 255 <<EOF +Failed to read nodes file "${CTDB_NODES_1}" +ERROR: Failed to get nodes file from node 1 +EOF + +simple_test <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +VNNMAP +654321 +0 +1 +2 +EOF |