]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-tests: Add more reloadnodes unit tests
authorMartin Schwenke <mschwenke@ddn.com>
Sat, 22 Jun 2024 04:54:53 +0000 (14:54 +1000)
committerGünther Deschner <gd@samba.org>
Tue, 16 Jul 2024 23:05:35 +0000 (23:05 +0000)
There are no existing tests to exercise node IP address change
detection.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Guenther Deschner <gd@samba.org>
ctdb/tests/UNIT/tool/ctdb.reloadnodes.030.sh [new file with mode: 0755]
ctdb/tests/UNIT/tool/ctdb.reloadnodes.031.sh [new file with mode: 0755]
ctdb/tests/UNIT/tool/ctdb.reloadnodes.032.sh [new file with mode: 0755]
ctdb/tests/UNIT/tool/ctdb.reloadnodes.033.sh [new file with mode: 0755]
ctdb/tests/UNIT/tool/ctdb.reloadnodes.034.sh [new file with mode: 0755]
ctdb/tests/UNIT/tool/ctdb.reloadnodes.035.sh [new file with mode: 0755]

diff --git a/ctdb/tests/UNIT/tool/ctdb.reloadnodes.030.sh b/ctdb/tests/UNIT/tool/ctdb.reloadnodes.030.sh
new file mode 100755 (executable)
index 0000000..ddf69b8
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "3 nodes, 1st node changes IP address"
+
+setup_nodes <<EOF
+192.168.20.51
+192.168.20.42
+192.168.20.43
+EOF
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+EOF
+
+required_result 1 <<EOF
+Node 0 has changed IP address (was 192.168.20.41, now 192.168.20.51)
+ERROR: Nodes will not be reloaded due to previous error
+EOF
+
+simple_test
diff --git a/ctdb/tests/UNIT/tool/ctdb.reloadnodes.031.sh b/ctdb/tests/UNIT/tool/ctdb.reloadnodes.031.sh
new file mode 100755 (executable)
index 0000000..61c7fab
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "3 nodes, 2nd node changes IP address"
+
+setup_nodes <<EOF
+192.168.20.41
+192.168.20.52
+192.168.20.43
+EOF
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+EOF
+
+required_result 1 <<EOF
+Node 1 has changed IP address (was 192.168.20.42, now 192.168.20.52)
+ERROR: Nodes will not be reloaded due to previous error
+EOF
+
+simple_test
diff --git a/ctdb/tests/UNIT/tool/ctdb.reloadnodes.032.sh b/ctdb/tests/UNIT/tool/ctdb.reloadnodes.032.sh
new file mode 100755 (executable)
index 0000000..18b2064
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "3 nodes, 3rd node changes IP address"
+
+setup_nodes <<EOF
+192.168.20.41
+192.168.20.42
+192.168.20.53
+EOF
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+EOF
+
+required_result 1 <<EOF
+Node 2 has changed IP address (was 192.168.20.43, now 192.168.20.53)
+ERROR: Nodes will not be reloaded due to previous error
+EOF
+
+simple_test
diff --git a/ctdb/tests/UNIT/tool/ctdb.reloadnodes.033.sh b/ctdb/tests/UNIT/tool/ctdb.reloadnodes.033.sh
new file mode 100755 (executable)
index 0000000..b3aaf1f
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "3 nodes, all nodes change IP address"
+
+setup_nodes <<EOF
+192.168.20.51
+192.168.20.52
+192.168.20.53
+EOF
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+EOF
+
+required_result 1 <<EOF
+Node 0 has changed IP address (was 192.168.20.41, now 192.168.20.51)
+Node 1 has changed IP address (was 192.168.20.42, now 192.168.20.52)
+Node 2 has changed IP address (was 192.168.20.43, now 192.168.20.53)
+ERROR: Nodes will not be reloaded due to previous error
+EOF
+
+simple_test
diff --git a/ctdb/tests/UNIT/tool/ctdb.reloadnodes.034.sh b/ctdb/tests/UNIT/tool/ctdb.reloadnodes.034.sh
new file mode 100755 (executable)
index 0000000..e2d423d
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "3 nodes, list reversed nodes change IP address"
+
+setup_nodes <<EOF
+192.168.20.43
+192.168.20.42
+192.168.20.41
+EOF
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+EOF
+
+required_result 1 <<EOF
+Node 0 has changed IP address (was 192.168.20.41, now 192.168.20.43)
+Node 2 has changed IP address (was 192.168.20.43, now 192.168.20.41)
+ERROR: Nodes will not be reloaded due to previous error
+EOF
+
+simple_test
diff --git a/ctdb/tests/UNIT/tool/ctdb.reloadnodes.035.sh b/ctdb/tests/UNIT/tool/ctdb.reloadnodes.035.sh
new file mode 100755 (executable)
index 0000000..9c058bd
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "3 nodes, comment at beginning, deleted node, nodes move"
+
+setup_nodes <<EOF
+# Adding a comment!
+192.168.20.41
+192.168.20.42
+192.168.20.43
+EOF
+
+setup_ctdbd <<EOF
+NODEMAP
+0       192.168.20.41   0x0     CURRENT RECMASTER
+1       192.168.20.42   0x0
+2       192.168.20.43   0x0
+EOF
+
+required_result 1 <<EOF
+Node 0 is DELETED
+ERROR: Node 0 is still connected
+Node 1 has changed IP address (was 192.168.20.42, now 192.168.20.41)
+Node 2 has changed IP address (was 192.168.20.43, now 192.168.20.42)
+ERROR: Nodes will not be reloaded due to previous error
+EOF
+
+simple_test