diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 17:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 17:47:29 +0000 |
commit | 4f5791ebd03eaec1c7da0865a383175b05102712 (patch) | |
tree | 8ce7b00f7a76baa386372422adebbe64510812d4 /ctdb/tests/UNIT/takeover | |
parent | Initial commit. (diff) | |
download | samba-upstream.tar.xz samba-upstream.zip |
Adding upstream version 2:4.17.12+dfsg.upstream/2%4.17.12+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
74 files changed, 6999 insertions, 0 deletions
diff --git a/ctdb/tests/UNIT/takeover/README b/ctdb/tests/UNIT/takeover/README new file mode 100644 index 0000000..764f389 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/README @@ -0,0 +1,5 @@ +Unit tests for the CTDB IP allocation algorithm(s). + +Test case filenames look like <algorithm>.NNN.sh, where <algorithm> +indicates the IP allocation algorithm to use. These use the +ctdb_takeover_test test program. diff --git a/ctdb/tests/UNIT/takeover/det.001.sh b/ctdb/tests/UNIT/takeover/det.001.sh new file mode 100755 index 0000000..ead8f21 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/det.001.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 healthy" + +required_result <<EOF +${TEST_DATE_STAMP}Deterministic IPs enabled. Resetting all ip allocations +${TEST_DATE_STAMP}Unassign IP: 192.168.21.254 from 0 +${TEST_DATE_STAMP}Unassign IP: 192.168.21.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.254 from 0 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.251 from 0 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.250 from 1 +192.168.21.254 2 +192.168.21.253 2 +192.168.21.252 2 +192.168.20.254 2 +192.168.20.253 2 +192.168.20.252 2 +192.168.20.251 2 +192.168.20.250 2 +192.168.20.249 2 +EOF + +simple_test 2,2,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/det.002.sh b/ctdb/tests/UNIT/takeover/det.002.sh new file mode 100755 index 0000000..c411d14 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/det.002.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 2 healthy" + +required_result <<EOF +${TEST_DATE_STAMP}Deterministic IPs enabled. Resetting all ip allocations +${TEST_DATE_STAMP}Unassign IP: 192.168.21.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.250 from 1 +192.168.21.254 0 +192.168.21.253 0 +192.168.21.252 2 +192.168.20.254 0 +192.168.20.253 2 +192.168.20.252 2 +192.168.20.251 0 +192.168.20.250 0 +192.168.20.249 2 +EOF + +simple_test 0,2,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/det.003.sh b/ctdb/tests/UNIT/takeover/det.003.sh new file mode 100755 index 0000000..b40e218 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/det.003.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 -> all healthy" + +required_result <<EOF +${TEST_DATE_STAMP}Deterministic IPs enabled. Resetting all ip allocations +192.168.21.254 0 +192.168.21.253 1 +192.168.21.252 2 +192.168.20.254 0 +192.168.20.253 1 +192.168.20.252 2 +192.168.20.251 0 +192.168.20.250 1 +192.168.20.249 2 +EOF + +simple_test 0,0,0 <<EOF +192.168.20.249 1 +192.168.20.250 1 +192.168.20.251 1 +192.168.20.252 1 +192.168.20.253 1 +192.168.20.254 1 +192.168.21.252 1 +192.168.21.253 1 +192.168.21.254 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.001.sh b/ctdb/tests/UNIT/takeover/lcp2.001.sh new file mode 100755 index 0000000..ee5b795 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.001.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 3 -> 1 healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 2 +192.168.21.253 2 +192.168.21.252 2 +192.168.20.254 2 +192.168.20.253 2 +192.168.20.252 2 +192.168.20.251 2 +192.168.20.250 2 +192.168.20.249 2 +EOF + +simple_test 2,2,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.002.sh b/ctdb/tests/UNIT/takeover/lcp2.002.sh new file mode 100755 index 0000000..6489388 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.002.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 3 -> 2 healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 2 +192.168.21.253 2 +192.168.21.252 0 +192.168.20.254 2 +192.168.20.253 2 +192.168.20.252 0 +192.168.20.251 2 +192.168.20.250 0 +192.168.20.249 0 +EOF + +simple_test 0,2,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.003.sh b/ctdb/tests/UNIT/takeover/lcp2.003.sh new file mode 100755 index 0000000..bdf2699 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.003.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 -> all healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 2 +192.168.21.253 0 +192.168.21.252 1 +192.168.20.254 2 +192.168.20.253 0 +192.168.20.252 1 +192.168.20.251 2 +192.168.20.250 0 +192.168.20.249 1 +EOF + +simple_test 0,0,0 <<EOF +192.168.20.249 1 +192.168.20.250 1 +192.168.20.251 1 +192.168.20.252 1 +192.168.20.253 1 +192.168.20.254 1 +192.168.21.252 1 +192.168.21.253 1 +192.168.21.254 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.004.sh b/ctdb/tests/UNIT/takeover/lcp2.004.sh new file mode 100755 index 0000000..7ce97c3 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.004.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 -> all healthy, info logging" + +export CTDB_TEST_LOGLEVEL=INFO + +required_result <<EOF +${TEST_DATE_STAMP}1 [-121363] -> 192.168.20.253 -> 0 [+0] +${TEST_DATE_STAMP}1 [-105738] -> 192.168.20.251 -> 2 [+0] +${TEST_DATE_STAMP}1 [-88649] -> 192.168.21.253 -> 0 [+14161] +${TEST_DATE_STAMP}1 [-75448] -> 192.168.20.254 -> 2 [+15625] +${TEST_DATE_STAMP}1 [-59823] -> 192.168.20.250 -> 0 [+29786] +${TEST_DATE_STAMP}1 [-44198] -> 192.168.21.254 -> 2 [+28322] +192.168.21.254 2 +192.168.21.253 0 +192.168.21.252 1 +192.168.20.254 2 +192.168.20.253 0 +192.168.20.252 1 +192.168.20.251 2 +192.168.20.250 0 +192.168.20.249 1 +EOF + +simple_test 0,0,0 <<EOF +192.168.20.249 1 +192.168.20.250 1 +192.168.20.251 1 +192.168.20.252 1 +192.168.20.253 1 +192.168.20.254 1 +192.168.21.252 1 +192.168.21.253 1 +192.168.21.254 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.005.sh b/ctdb/tests/UNIT/takeover/lcp2.005.sh new file mode 100755 index 0000000..f579a94 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.005.sh @@ -0,0 +1,198 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 -> all healthy, debug logging" + +export CTDB_TEST_LOGLEVEL=DEBUG + +required_result <<EOF +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES (UNASSIGNED) +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [0] +${TEST_DATE_STAMP} 1 [539166] +${TEST_DATE_STAMP} 2 [0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [539166] +${TEST_DATE_STAMP} 1 [-116718] -> 192.168.21.254 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-116718] -> 192.168.21.254 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-116971] -> 192.168.21.253 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-116971] -> 192.168.21.253 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-116971] -> 192.168.21.252 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-116971] -> 192.168.21.252 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-121110] -> 192.168.20.254 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-121110] -> 192.168.20.254 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.253 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.253 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.252 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.252 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.251 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.251 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.250 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-121363] -> 192.168.20.250 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-121110] -> 192.168.20.249 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-121110] -> 192.168.20.249 -> 2 [+0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-121363] -> 192.168.20.253 -> 0 [+0] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [0] +${TEST_DATE_STAMP} 1 [417803] +${TEST_DATE_STAMP} 2 [0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [417803] +${TEST_DATE_STAMP} 1 [-102557] -> 192.168.21.254 -> 0 [+14161] +${TEST_DATE_STAMP} 1 [-102557] -> 192.168.21.254 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-102810] -> 192.168.21.253 -> 0 [+14161] +${TEST_DATE_STAMP} 1 [-102810] -> 192.168.21.253 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-102810] -> 192.168.21.252 -> 0 [+14161] +${TEST_DATE_STAMP} 1 [-102810] -> 192.168.21.252 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-105234] -> 192.168.20.254 -> 0 [+15876] +${TEST_DATE_STAMP} 1 [-105234] -> 192.168.20.254 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-105234] -> 192.168.20.252 -> 0 [+16129] +${TEST_DATE_STAMP} 1 [-105234] -> 192.168.20.252 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-105738] -> 192.168.20.251 -> 0 [+15625] +${TEST_DATE_STAMP} 1 [-105738] -> 192.168.20.251 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-105738] -> 192.168.20.250 -> 0 [+15625] +${TEST_DATE_STAMP} 1 [-105738] -> 192.168.20.250 -> 2 [+0] +${TEST_DATE_STAMP} 1 [-105485] -> 192.168.20.249 -> 0 [+15625] +${TEST_DATE_STAMP} 1 [-105485] -> 192.168.20.249 -> 2 [+0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-105738] -> 192.168.20.251 -> 2 [+0] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [0] +${TEST_DATE_STAMP} 1 [312065] +${TEST_DATE_STAMP} 2 [0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [312065] +${TEST_DATE_STAMP} 1 [-88396] -> 192.168.21.254 -> 0 [+14161] +${TEST_DATE_STAMP} 1 [-88396] -> 192.168.21.254 -> 2 [+14161] +${TEST_DATE_STAMP} 1 [-88649] -> 192.168.21.253 -> 0 [+14161] +${TEST_DATE_STAMP} 1 [-88649] -> 192.168.21.253 -> 2 [+14161] +${TEST_DATE_STAMP} 1 [-88649] -> 192.168.21.252 -> 0 [+14161] +${TEST_DATE_STAMP} 1 [-88649] -> 192.168.21.252 -> 2 [+14161] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.254 -> 0 [+15876] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.254 -> 2 [+15625] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.252 -> 0 [+16129] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.252 -> 2 [+15625] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.250 -> 0 [+15625] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.250 -> 2 [+16129] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.249 -> 0 [+15625] +${TEST_DATE_STAMP} 1 [-89609] -> 192.168.20.249 -> 2 [+15876] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-88649] -> 192.168.21.253 -> 0 [+14161] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [14161] +${TEST_DATE_STAMP} 1 [223416] +${TEST_DATE_STAMP} 2 [0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [223416] +${TEST_DATE_STAMP} 1 [-72520] -> 192.168.21.254 -> 0 [+30037] +${TEST_DATE_STAMP} 1 [-72520] -> 192.168.21.254 -> 2 [+14161] +${TEST_DATE_STAMP} 1 [-72520] -> 192.168.21.252 -> 0 [+30290] +${TEST_DATE_STAMP} 1 [-72520] -> 192.168.21.252 -> 2 [+14161] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.254 -> 0 [+30037] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.254 -> 2 [+15625] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.252 -> 0 [+30290] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.252 -> 2 [+15625] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.250 -> 0 [+29786] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.250 -> 2 [+16129] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.249 -> 0 [+29786] +${TEST_DATE_STAMP} 1 [-75448] -> 192.168.20.249 -> 2 [+15876] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-75448] -> 192.168.20.254 -> 2 [+15625] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [14161] +${TEST_DATE_STAMP} 1 [147968] +${TEST_DATE_STAMP} 2 [15625] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [147968] +${TEST_DATE_STAMP} 1 [-58359] -> 192.168.21.254 -> 0 [+30037] +${TEST_DATE_STAMP} 1 [-58359] -> 192.168.21.254 -> 2 [+28322] +${TEST_DATE_STAMP} 1 [-58359] -> 192.168.21.252 -> 0 [+30290] +${TEST_DATE_STAMP} 1 [-58359] -> 192.168.21.252 -> 2 [+28322] +${TEST_DATE_STAMP} 1 [-59572] -> 192.168.20.252 -> 0 [+30290] +${TEST_DATE_STAMP} 1 [-59572] -> 192.168.20.252 -> 2 [+31501] +${TEST_DATE_STAMP} 1 [-59823] -> 192.168.20.250 -> 0 [+29786] +${TEST_DATE_STAMP} 1 [-59823] -> 192.168.20.250 -> 2 [+31754] +${TEST_DATE_STAMP} 1 [-59823] -> 192.168.20.249 -> 0 [+29786] +${TEST_DATE_STAMP} 1 [-59823] -> 192.168.20.249 -> 2 [+31501] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-59823] -> 192.168.20.250 -> 0 [+29786] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [43947] +${TEST_DATE_STAMP} 1 [88145] +${TEST_DATE_STAMP} 2 [15625] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [88145] +${TEST_DATE_STAMP} 1 [-44198] -> 192.168.21.254 -> 0 [+44198] +${TEST_DATE_STAMP} 1 [-44198] -> 192.168.21.254 -> 2 [+28322] +${TEST_DATE_STAMP} 1 [-44198] -> 192.168.21.252 -> 0 [+44451] +${TEST_DATE_STAMP} 1 [-44198] -> 192.168.21.252 -> 2 [+28322] +${TEST_DATE_STAMP} 1 [-43947] -> 192.168.20.252 -> 0 [+45915] +${TEST_DATE_STAMP} 1 [-43947] -> 192.168.20.252 -> 2 [+31501] +${TEST_DATE_STAMP} 1 [-43947] -> 192.168.20.249 -> 0 [+45662] +${TEST_DATE_STAMP} 1 [-43947] -> 192.168.20.249 -> 2 [+31501] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-44198] -> 192.168.21.254 -> 2 [+28322] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [43947] +${TEST_DATE_STAMP} 1 [43947] +${TEST_DATE_STAMP} 2 [43947] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 0 [43947] +${TEST_DATE_STAMP} 0 [-28322] -> 192.168.21.253 -> 0 [+28322] +${TEST_DATE_STAMP} 0 [-28322] -> 192.168.21.253 -> 2 [+44198] +${TEST_DATE_STAMP} 0 [-29786] -> 192.168.20.253 -> 0 [+29786] +${TEST_DATE_STAMP} 0 [-29786] -> 192.168.20.253 -> 2 [+45662] +${TEST_DATE_STAMP} 0 [-29786] -> 192.168.20.250 -> 0 [+29786] +${TEST_DATE_STAMP} 0 [-29786] -> 192.168.20.250 -> 2 [+45915] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [43947] +${TEST_DATE_STAMP} 1 [-28322] -> 192.168.21.252 -> 0 [+44451] +${TEST_DATE_STAMP} 1 [-28322] -> 192.168.21.252 -> 2 [+44198] +${TEST_DATE_STAMP} 1 [-29786] -> 192.168.20.252 -> 0 [+45915] +${TEST_DATE_STAMP} 1 [-29786] -> 192.168.20.252 -> 2 [+45662] +${TEST_DATE_STAMP} 1 [-29786] -> 192.168.20.249 -> 0 [+45662] +${TEST_DATE_STAMP} 1 [-29786] -> 192.168.20.249 -> 2 [+45662] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 2 [43947] +${TEST_DATE_STAMP} 2 [-28322] -> 192.168.21.254 -> 0 [+44198] +${TEST_DATE_STAMP} 2 [-28322] -> 192.168.21.254 -> 2 [+28322] +${TEST_DATE_STAMP} 2 [-29786] -> 192.168.20.254 -> 0 [+45662] +${TEST_DATE_STAMP} 2 [-29786] -> 192.168.20.254 -> 2 [+29786] +${TEST_DATE_STAMP} 2 [-29786] -> 192.168.20.251 -> 0 [+45915] +${TEST_DATE_STAMP} 2 [-29786] -> 192.168.20.251 -> 2 [+29786] +${TEST_DATE_STAMP} ---------------------------------------- +192.168.21.254 2 +192.168.21.253 0 +192.168.21.252 1 +192.168.20.254 2 +192.168.20.253 0 +192.168.20.252 1 +192.168.20.251 2 +192.168.20.250 0 +192.168.20.249 1 +EOF + +simple_test 0,0,0 <<EOF +192.168.20.249 1 +192.168.20.250 1 +192.168.20.251 1 +192.168.20.252 1 +192.168.20.253 1 +192.168.20.254 1 +192.168.21.252 1 +192.168.21.253 1 +192.168.21.254 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.006.sh b/ctdb/tests/UNIT/takeover/lcp2.006.sh new file mode 100755 index 0000000..c527992 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.006.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 0 -> 1 healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 1 +192.168.21.253 1 +192.168.21.252 1 +192.168.20.254 1 +192.168.20.253 1 +192.168.20.252 1 +192.168.20.251 1 +192.168.20.250 1 +192.168.20.249 1 +EOF + +simple_test 2,0,2 <<EOF +192.168.20.249 -1 +192.168.20.250 -1 +192.168.20.251 -1 +192.168.20.252 -1 +192.168.20.253 -1 +192.168.20.254 -1 +192.168.21.252 -1 +192.168.21.253 -1 +192.168.21.254 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.007.sh b/ctdb/tests/UNIT/takeover/lcp2.007.sh new file mode 100755 index 0000000..a514025 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.007.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 0 -> 2 healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 1 +192.168.21.253 2 +192.168.21.252 1 +192.168.20.254 1 +192.168.20.253 2 +192.168.20.252 1 +192.168.20.251 1 +192.168.20.250 2 +192.168.20.249 2 +EOF + +simple_test 2,0,0 <<EOF +192.168.20.249 -1 +192.168.20.250 -1 +192.168.20.251 -1 +192.168.20.252 -1 +192.168.20.253 -1 +192.168.20.254 -1 +192.168.21.252 -1 +192.168.21.253 -1 +192.168.21.254 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.008.sh b/ctdb/tests/UNIT/takeover/lcp2.008.sh new file mode 100755 index 0000000..6387223 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.008.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 0 -> all healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 0 +192.168.21.253 1 +192.168.21.252 2 +192.168.20.254 0 +192.168.20.253 1 +192.168.20.252 2 +192.168.20.251 0 +192.168.20.250 1 +192.168.20.249 2 +EOF + +simple_test 0,0,0 <<EOF +192.168.20.249 -1 +192.168.20.250 -1 +192.168.20.251 -1 +192.168.20.252 -1 +192.168.20.253 -1 +192.168.20.254 -1 +192.168.21.252 -1 +192.168.21.253 -1 +192.168.21.254 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.009.sh b/ctdb/tests/UNIT/takeover/lcp2.009.sh new file mode 100755 index 0000000..1b0c350 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.009.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 3 healthy -> all disconnected" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF + +simple_test 1,1,1 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.010.sh b/ctdb/tests/UNIT/takeover/lcp2.010.sh new file mode 100755 index 0000000..f7dabdd --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.010.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "2 disjoint groups of nodes/addresses, a node becomes healthy" + +# This illustrates a bug in LCP2 when the the only candidate for a +# source node is chosen to be the "most imbalanced" node. This means +# that nodes in the smaller group aren't necessarily (depends on sort +# order and addresses used) considered as candidates. If the larger +# group has 6 addresses then the "necessarily" goes away and the +# smaller group won't be rebalanced. + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.209.102 3 +192.168.209.101 2 +192.168.140.4 1 +192.168.140.3 1 +192.168.140.2 0 +192.168.140.1 0 +EOF + +simple_test 0,0,0,0 <<EOF +192.168.140.1 0 0,1 +192.168.140.2 0 0,1 +192.168.140.3 1 0,1 +192.168.140.4 1 0,1 +192.168.209.101 2 2,3 +192.168.209.102 2 2,3 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.011.sh b/ctdb/tests/UNIT/takeover/lcp2.011.sh new file mode 100755 index 0000000..1f10bd1 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.011.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "2 disjoint groups of nodes/addresses, continue a stopped node" + +# Another LCP2 1.0 bug + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +10.11.19.46 3 +10.11.19.45 3 +10.11.19.44 1 +10.11.18.46 1 +10.11.18.45 3 +10.11.18.44 1 +10.11.17.46 3 +10.11.17.45 3 +10.11.17.44 1 +10.11.16.46 1 +10.11.16.45 3 +10.11.16.44 1 +9.11.136.46 2 +9.11.136.45 0 +9.11.136.44 2 +EOF + +simple_test 0,0,0,0 <<EOF +9.11.136.44 2 0,2 +9.11.136.45 2 0,2 +9.11.136.46 2 0,2 +10.11.16.44 1 1,3 +10.11.16.45 3 1,3 +10.11.16.46 1 1,3 +10.11.17.44 1 1,3 +10.11.17.45 3 1,3 +10.11.17.46 3 1,3 +10.11.18.44 1 1,3 +10.11.18.45 3 1,3 +10.11.18.46 1 1,3 +10.11.19.44 1 1,3 +10.11.19.45 3 1,3 +10.11.19.46 3 1,3 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.012.sh b/ctdb/tests/UNIT/takeover/lcp2.012.sh new file mode 100755 index 0000000..074cdcc --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.012.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "NoIPTakeover - nodes don't gain IPs" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 1 +192.168.21.253 1 +192.168.21.252 1 +192.168.20.254 1 +192.168.20.253 1 +192.168.20.252 1 +192.168.20.251 1 +192.168.20.250 1 +192.168.20.249 1 +EOF + +export CTDB_SET_NoIPTakeover=1 + +simple_test 0,0,0 <<EOF +192.168.20.249 1 +192.168.20.250 1 +192.168.20.251 1 +192.168.20.252 1 +192.168.20.253 1 +192.168.20.254 1 +192.168.21.252 1 +192.168.21.253 1 +192.168.21.254 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.013.sh b/ctdb/tests/UNIT/takeover/lcp2.013.sh new file mode 100755 index 0000000..091a235 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.013.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "NoIPTakeover: nodes don't lose IPs" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 2 +192.168.21.253 1 +192.168.21.252 0 +192.168.20.254 2 +192.168.20.253 1 +192.168.20.252 0 +192.168.20.251 2 +192.168.20.250 1 +192.168.20.249 0 +EOF + +export CTDB_SET_NoIPTakeover=1 + +simple_test 0,0,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.014.sh b/ctdb/tests/UNIT/takeover/lcp2.014.sh new file mode 100755 index 0000000..25482c0 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.014.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, no IPs assigned, all unhealthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF + +simple_test 2,2,2 <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.015.sh b/ctdb/tests/UNIT/takeover/lcp2.015.sh new file mode 100755 index 0000000..63c87c6 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.015.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all IPs assigned, all unhealthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF + +simple_test 2,2,2 <<EOF +192.168.21.254 2 +192.168.21.253 2 +192.168.21.252 2 +192.168.20.254 1 +192.168.20.253 1 +192.168.20.252 1 +192.168.20.251 0 +192.168.20.250 0 +192.168.20.249 0 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.016.sh b/ctdb/tests/UNIT/takeover/lcp2.016.sh new file mode 100755 index 0000000..da2f4b0 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.016.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all IPs assigned, 2->3 unhealthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF + +simple_test 2,2,2 <<EOF +192.168.21.254 2 +192.168.21.253 2 +192.168.21.252 2 +192.168.20.254 2 +192.168.20.253 2 +192.168.20.252 2 +192.168.20.251 2 +192.168.20.250 2 +192.168.20.249 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.024.sh b/ctdb/tests/UNIT/takeover/lcp2.024.sh new file mode 100755 index 0000000..d297084 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.024.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, no IPs assigned, all healthy, all in STARTUP runstate" + +export CTDB_TEST_LOGLEVEL=NOTICE + +required_result <<EOF +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.21.254 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.21.253 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.21.252 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.20.254 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.20.253 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.20.252 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.20.251 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.20.250 +${TEST_DATE_STAMP}Failed to find node to cover ip 192.168.20.249 +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF + +export CTDB_TEST_RUNSTATE=4,4,4 + +simple_test 0,0,0 <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.025.sh b/ctdb/tests/UNIT/takeover/lcp2.025.sh new file mode 100755 index 0000000..f52282e --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.025.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, no IPs assigned, all healthy, 1 in STARTUP runstate" + +export CTDB_TEST_LOGLEVEL=NOTICE + +required_result <<EOF +192.168.21.254 1 +192.168.21.253 2 +192.168.21.252 1 +192.168.20.254 1 +192.168.20.253 2 +192.168.20.252 1 +192.168.20.251 1 +192.168.20.250 2 +192.168.20.249 2 +EOF + +export CTDB_TEST_RUNSTATE=4,5,5 + +simple_test 0,0,0 <<EOF +192.168.21.254 -1 +192.168.21.253 -1 +192.168.21.252 -1 +192.168.20.254 -1 +192.168.20.253 -1 +192.168.20.252 -1 +192.168.20.251 -1 +192.168.20.250 -1 +192.168.20.249 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.027.sh b/ctdb/tests/UNIT/takeover/lcp2.027.sh new file mode 100755 index 0000000..f572b47 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.027.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "4 nodes, all IPs assigned, 3->4 unhealthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 3 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 0 +130.216.30.172 3 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 0 +10.19.99.250 3 +EOF + +simple_test 0,0,2,0 <<EOF +130.216.30.170 3 +130.216.30.171 2 +130.216.30.172 3 +130.216.30.173 2 +130.216.30.174 1 +130.216.30.175 0 +130.216.30.176 1 +130.216.30.177 0 +130.216.30.178 3 +130.216.30.179 2 +130.216.30.180 1 +130.216.30.181 0 +10.19.99.250 3 +10.19.99.251 2 +10.19.99.252 1 +10.19.99.253 0 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.028.sh b/ctdb/tests/UNIT/takeover/lcp2.028.sh new file mode 100755 index 0000000..b0a8ef5 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.028.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "4 nodes, all healthy/assigned, stays unbalanced" + +export CTDB_TEST_LOGLEVEL=INFO + +required_result <<EOF +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 2 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 0 +130.216.30.172 3 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 0 +10.19.99.250 3 +EOF + +simple_test 0,0,0,0 <<EOF +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 2 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 0 +130.216.30.172 3 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 0 +10.19.99.250 3 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.029.sh b/ctdb/tests/UNIT/takeover/lcp2.029.sh new file mode 100755 index 0000000..5354963 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.029.sh @@ -0,0 +1,111 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "4 nodes, some IPs unassigned on target nodes" + +export CTDB_TEST_LOGLEVEL=INFO + +required_result <<EOF +${TEST_DATE_STAMP} 10.19.99.251 -> 2 [+9216] +${TEST_DATE_STAMP} 130.216.30.173 -> 2 [+24345] +${TEST_DATE_STAMP} 130.216.30.171 -> 2 [+39970] +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 2 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 2 +130.216.30.172 3 +130.216.30.171 2 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 2 +10.19.99.250 3 +EOF + +# In this example were 4 releases from node 2 in a previous iteration +# +# Release of IP 130.216.30.179/27 on interface ethX1 node:3 +# Release of IP 130.216.30.173/27 on interface ethX1 node:0 +# Release of IP 130.216.30.171/27 on interface ethX1 node:1 +# Release of IP 10.19.99.251/22 on interface ethX2 node:0 +# +# However, one release failed so no takeovers were done. This means +# that the target node for each IP still thinks that the IPs are held +# by node 2. The release of 130.216.30.179 was so late that node 2 +# still thought that it held that address. + +simple_test 0,0,0,0 multi <<EOF +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 3 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 2 +130.216.30.172 3 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 2 +10.19.99.250 3 + +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 3 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 0 +130.216.30.172 3 +130.216.30.171 2 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 0 +10.19.99.250 3 + +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 2 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 0 +130.216.30.172 3 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 0 +10.19.99.250 3 + +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 2 +130.216.30.178 3 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 0 +130.216.30.172 3 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 1 +10.19.99.251 0 +10.19.99.250 3 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.030.sh b/ctdb/tests/UNIT/takeover/lcp2.030.sh new file mode 100755 index 0000000..87a7f58 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.030.sh @@ -0,0 +1,1813 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "900 IPs, 5 nodes, 0 -> 5 healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.10.90 0 +192.168.10.89 1 +192.168.10.88 2 +192.168.10.87 3 +192.168.10.86 4 +192.168.10.85 0 +192.168.10.84 1 +192.168.10.83 2 +192.168.10.82 3 +192.168.10.81 4 +192.168.10.80 0 +192.168.10.79 0 +192.168.10.78 1 +192.168.10.77 2 +192.168.10.76 3 +192.168.10.75 4 +192.168.10.74 1 +192.168.10.73 2 +192.168.10.72 3 +192.168.10.71 3 +192.168.10.70 4 +192.168.10.69 0 +192.168.10.68 1 +192.168.10.67 2 +192.168.10.66 4 +192.168.10.65 0 +192.168.10.64 1 +192.168.10.63 0 +192.168.10.62 1 +192.168.10.61 2 +192.168.10.60 3 +192.168.10.59 4 +192.168.10.58 2 +192.168.10.57 3 +192.168.10.56 0 +192.168.10.55 0 +192.168.10.54 1 +192.168.10.53 2 +192.168.10.52 3 +192.168.10.51 4 +192.168.10.50 1 +192.168.10.49 4 +192.168.10.48 2 +192.168.10.47 0 +192.168.10.46 1 +192.168.10.45 2 +192.168.10.44 3 +192.168.10.43 4 +192.168.10.42 2 +192.168.10.41 3 +192.168.10.40 1 +192.168.10.39 3 +192.168.10.38 4 +192.168.10.37 0 +192.168.10.36 1 +192.168.10.35 2 +192.168.10.34 4 +192.168.10.33 0 +192.168.10.32 3 +192.168.10.31 0 +192.168.10.30 1 +192.168.10.29 2 +192.168.10.28 3 +192.168.10.27 4 +192.168.10.26 3 +192.168.10.25 2 +192.168.10.24 0 +192.168.10.23 3 +192.168.10.22 4 +192.168.10.21 0 +192.168.10.20 1 +192.168.10.19 2 +192.168.10.18 4 +192.168.10.17 1 +192.168.10.16 4 +192.168.10.15 0 +192.168.10.14 1 +192.168.10.13 2 +192.168.10.12 3 +192.168.10.11 4 +192.168.10.10 2 +192.168.10.9 3 +192.168.10.8 4 +192.168.10.7 0 +192.168.10.6 1 +192.168.10.5 2 +192.168.10.4 3 +192.168.10.3 4 +192.168.10.2 0 +192.168.10.1 1 +192.168.9.90 0 +192.168.9.89 1 +192.168.9.88 2 +192.168.9.87 3 +192.168.9.86 4 +192.168.9.85 0 +192.168.9.84 1 +192.168.9.83 2 +192.168.9.82 3 +192.168.9.81 4 +192.168.9.80 0 +192.168.9.79 0 +192.168.9.78 1 +192.168.9.77 2 +192.168.9.76 3 +192.168.9.75 4 +192.168.9.74 1 +192.168.9.73 2 +192.168.9.72 3 +192.168.9.71 3 +192.168.9.70 4 +192.168.9.69 0 +192.168.9.68 1 +192.168.9.67 2 +192.168.9.66 4 +192.168.9.65 0 +192.168.9.64 1 +192.168.9.63 0 +192.168.9.62 1 +192.168.9.61 2 +192.168.9.60 3 +192.168.9.59 4 +192.168.9.58 2 +192.168.9.57 3 +192.168.9.56 4 +192.168.9.55 0 +192.168.9.54 1 +192.168.9.53 2 +192.168.9.52 3 +192.168.9.51 4 +192.168.9.50 0 +192.168.9.49 1 +192.168.9.48 2 +192.168.9.47 0 +192.168.9.46 1 +192.168.9.45 2 +192.168.9.44 3 +192.168.9.43 4 +192.168.9.42 2 +192.168.9.41 4 +192.168.9.40 3 +192.168.9.39 0 +192.168.9.38 1 +192.168.9.37 2 +192.168.9.36 3 +192.168.9.35 4 +192.168.9.34 0 +192.168.9.33 1 +192.168.9.32 4 +192.168.9.31 0 +192.168.9.30 1 +192.168.9.29 2 +192.168.9.28 3 +192.168.9.27 4 +192.168.9.26 2 +192.168.9.25 3 +192.168.9.24 0 +192.168.9.23 3 +192.168.9.22 4 +192.168.9.21 0 +192.168.9.20 1 +192.168.9.19 2 +192.168.9.18 4 +192.168.9.17 1 +192.168.9.16 3 +192.168.9.15 0 +192.168.9.14 1 +192.168.9.13 2 +192.168.9.12 3 +192.168.9.11 4 +192.168.9.10 2 +192.168.9.9 4 +192.168.9.8 3 +192.168.9.7 0 +192.168.9.6 1 +192.168.9.5 2 +192.168.9.4 3 +192.168.9.3 4 +192.168.9.2 0 +192.168.9.1 1 +192.168.8.90 0 +192.168.8.89 1 +192.168.8.88 2 +192.168.8.87 3 +192.168.8.86 4 +192.168.8.85 0 +192.168.8.84 1 +192.168.8.83 2 +192.168.8.82 3 +192.168.8.81 4 +192.168.8.80 0 +192.168.8.79 0 +192.168.8.78 1 +192.168.8.77 2 +192.168.8.76 3 +192.168.8.75 4 +192.168.8.74 1 +192.168.8.73 2 +192.168.8.72 3 +192.168.8.71 3 +192.168.8.70 4 +192.168.8.69 0 +192.168.8.68 1 +192.168.8.67 2 +192.168.8.66 4 +192.168.8.65 3 +192.168.8.64 0 +192.168.8.63 0 +192.168.8.62 1 +192.168.8.61 2 +192.168.8.60 3 +192.168.8.59 4 +192.168.8.58 1 +192.168.8.57 2 +192.168.8.56 3 +192.168.8.55 0 +192.168.8.54 1 +192.168.8.53 2 +192.168.8.52 3 +192.168.8.51 4 +192.168.8.50 0 +192.168.8.49 4 +192.168.8.48 1 +192.168.8.47 0 +192.168.8.46 1 +192.168.8.45 2 +192.168.8.44 3 +192.168.8.43 4 +192.168.8.42 2 +192.168.8.41 1 +192.168.8.40 4 +192.168.8.39 0 +192.168.8.38 1 +192.168.8.37 2 +192.168.8.36 3 +192.168.8.35 4 +192.168.8.34 3 +192.168.8.33 0 +192.168.8.32 2 +192.168.8.31 0 +192.168.8.30 1 +192.168.8.29 2 +192.168.8.28 3 +192.168.8.27 4 +192.168.8.26 2 +192.168.8.25 1 +192.168.8.24 3 +192.168.8.23 3 +192.168.8.22 4 +192.168.8.21 0 +192.168.8.20 1 +192.168.8.19 2 +192.168.8.18 4 +192.168.8.17 0 +192.168.8.16 4 +192.168.8.15 0 +192.168.8.14 1 +192.168.8.13 2 +192.168.8.12 3 +192.168.8.11 4 +192.168.8.10 1 +192.168.8.9 2 +192.168.8.8 4 +192.168.8.7 0 +192.168.8.6 1 +192.168.8.5 2 +192.168.8.4 3 +192.168.8.3 4 +192.168.8.2 3 +192.168.8.1 0 +192.168.7.90 0 +192.168.7.89 1 +192.168.7.88 2 +192.168.7.87 3 +192.168.7.86 4 +192.168.7.85 0 +192.168.7.84 1 +192.168.7.83 2 +192.168.7.82 3 +192.168.7.81 4 +192.168.7.80 1 +192.168.7.79 0 +192.168.7.78 1 +192.168.7.77 2 +192.168.7.76 3 +192.168.7.75 4 +192.168.7.74 2 +192.168.7.73 3 +192.168.7.72 0 +192.168.7.71 3 +192.168.7.70 4 +192.168.7.69 0 +192.168.7.68 1 +192.168.7.67 2 +192.168.7.66 4 +192.168.7.65 1 +192.168.7.64 3 +192.168.7.63 0 +192.168.7.62 1 +192.168.7.61 2 +192.168.7.60 3 +192.168.7.59 4 +192.168.7.58 2 +192.168.7.57 0 +192.168.7.56 1 +192.168.7.55 0 +192.168.7.54 1 +192.168.7.53 2 +192.168.7.52 3 +192.168.7.51 4 +192.168.7.50 3 +192.168.7.49 4 +192.168.7.48 2 +192.168.7.47 0 +192.168.7.46 1 +192.168.7.45 2 +192.168.7.44 3 +192.168.7.43 4 +192.168.7.42 2 +192.168.7.41 0 +192.168.7.40 1 +192.168.7.39 4 +192.168.7.38 0 +192.168.7.37 1 +192.168.7.36 2 +192.168.7.35 3 +192.168.7.34 4 +192.168.7.33 3 +192.168.7.32 0 +192.168.7.31 0 +192.168.7.30 1 +192.168.7.29 2 +192.168.7.28 3 +192.168.7.27 4 +192.168.7.26 2 +192.168.7.25 0 +192.168.7.24 1 +192.168.7.23 3 +192.168.7.22 4 +192.168.7.21 0 +192.168.7.20 1 +192.168.7.19 2 +192.168.7.18 4 +192.168.7.17 3 +192.168.7.16 4 +192.168.7.15 0 +192.168.7.14 1 +192.168.7.13 2 +192.168.7.12 3 +192.168.7.11 4 +192.168.7.10 3 +192.168.7.9 2 +192.168.7.8 0 +192.168.7.7 2 +192.168.7.6 4 +192.168.7.5 0 +192.168.7.4 1 +192.168.7.3 3 +192.168.7.2 4 +192.168.7.1 1 +192.168.6.90 0 +192.168.6.89 1 +192.168.6.88 2 +192.168.6.87 3 +192.168.6.86 4 +192.168.6.85 0 +192.168.6.84 1 +192.168.6.83 2 +192.168.6.82 4 +192.168.6.81 3 +192.168.6.80 0 +192.168.6.79 0 +192.168.6.78 1 +192.168.6.77 2 +192.168.6.76 3 +192.168.6.75 4 +192.168.6.74 2 +192.168.6.73 3 +192.168.6.72 1 +192.168.6.71 3 +192.168.6.70 4 +192.168.6.69 0 +192.168.6.68 1 +192.168.6.67 2 +192.168.6.66 4 +192.168.6.65 0 +192.168.6.64 1 +192.168.6.63 0 +192.168.6.62 1 +192.168.6.61 2 +192.168.6.60 3 +192.168.6.59 4 +192.168.6.58 2 +192.168.6.57 3 +192.168.6.56 0 +192.168.6.55 3 +192.168.6.54 4 +192.168.6.53 1 +192.168.6.52 2 +192.168.6.51 0 +192.168.6.50 4 +192.168.6.49 1 +192.168.6.48 2 +192.168.6.47 0 +192.168.6.46 1 +192.168.6.45 2 +192.168.6.44 3 +192.168.6.43 4 +192.168.6.42 2 +192.168.6.41 4 +192.168.6.40 3 +192.168.6.39 0 +192.168.6.38 1 +192.168.6.37 2 +192.168.6.36 3 +192.168.6.35 4 +192.168.6.34 0 +192.168.6.33 1 +192.168.6.32 4 +192.168.6.31 0 +192.168.6.30 1 +192.168.6.29 2 +192.168.6.28 3 +192.168.6.27 4 +192.168.6.26 2 +192.168.6.25 3 +192.168.6.24 0 +192.168.6.23 3 +192.168.6.22 4 +192.168.6.21 0 +192.168.6.20 1 +192.168.6.19 2 +192.168.6.18 4 +192.168.6.17 1 +192.168.6.16 3 +192.168.6.15 0 +192.168.6.14 1 +192.168.6.13 2 +192.168.6.12 3 +192.168.6.11 4 +192.168.6.10 2 +192.168.6.9 3 +192.168.6.8 4 +192.168.6.7 0 +192.168.6.6 1 +192.168.6.5 2 +192.168.6.4 3 +192.168.6.3 4 +192.168.6.2 0 +192.168.6.1 1 +192.168.5.90 0 +192.168.5.89 1 +192.168.5.88 2 +192.168.5.87 3 +192.168.5.86 4 +192.168.5.85 0 +192.168.5.84 1 +192.168.5.83 2 +192.168.5.82 4 +192.168.5.81 3 +192.168.5.80 0 +192.168.5.79 0 +192.168.5.78 1 +192.168.5.77 2 +192.168.5.76 3 +192.168.5.75 4 +192.168.5.74 2 +192.168.5.73 3 +192.168.5.72 1 +192.168.5.71 3 +192.168.5.70 4 +192.168.5.69 2 +192.168.5.68 0 +192.168.5.67 1 +192.168.5.66 4 +192.168.5.65 2 +192.168.5.64 0 +192.168.5.63 0 +192.168.5.62 1 +192.168.5.61 2 +192.168.5.60 3 +192.168.5.59 4 +192.168.5.58 1 +192.168.5.57 3 +192.168.5.56 2 +192.168.5.55 0 +192.168.5.54 1 +192.168.5.53 2 +192.168.5.52 3 +192.168.5.51 4 +192.168.5.50 0 +192.168.5.49 4 +192.168.5.48 1 +192.168.5.47 0 +192.168.5.46 1 +192.168.5.45 2 +192.168.5.44 3 +192.168.5.43 4 +192.168.5.42 1 +192.168.5.41 3 +192.168.5.40 2 +192.168.5.39 2 +192.168.5.38 3 +192.168.5.37 4 +192.168.5.36 0 +192.168.5.35 1 +192.168.5.34 4 +192.168.5.33 0 +192.168.5.32 4 +192.168.5.31 0 +192.168.5.30 1 +192.168.5.29 2 +192.168.5.28 3 +192.168.5.27 4 +192.168.5.26 1 +192.168.5.25 3 +192.168.5.24 2 +192.168.5.23 3 +192.168.5.22 4 +192.168.5.21 2 +192.168.5.20 0 +192.168.5.19 1 +192.168.5.18 4 +192.168.5.17 0 +192.168.5.16 3 +192.168.5.15 0 +192.168.5.14 1 +192.168.5.13 2 +192.168.5.12 3 +192.168.5.11 4 +192.168.5.10 1 +192.168.5.9 4 +192.168.5.8 3 +192.168.5.7 0 +192.168.5.6 1 +192.168.5.5 2 +192.168.5.4 3 +192.168.5.3 4 +192.168.5.2 2 +192.168.5.1 0 +192.168.4.90 0 +192.168.4.89 1 +192.168.4.88 2 +192.168.4.87 3 +192.168.4.86 4 +192.168.4.85 0 +192.168.4.84 1 +192.168.4.83 2 +192.168.4.82 3 +192.168.4.81 4 +192.168.4.80 0 +192.168.4.79 0 +192.168.4.78 1 +192.168.4.77 2 +192.168.4.76 3 +192.168.4.75 4 +192.168.4.74 1 +192.168.4.73 2 +192.168.4.72 3 +192.168.4.71 3 +192.168.4.70 4 +192.168.4.69 0 +192.168.4.68 1 +192.168.4.67 2 +192.168.4.66 4 +192.168.4.65 1 +192.168.4.64 3 +192.168.4.63 0 +192.168.4.62 1 +192.168.4.61 2 +192.168.4.60 3 +192.168.4.59 4 +192.168.4.58 0 +192.168.4.57 2 +192.168.4.56 1 +192.168.4.55 0 +192.168.4.54 1 +192.168.4.53 2 +192.168.4.52 3 +192.168.4.51 4 +192.168.4.50 3 +192.168.4.49 4 +192.168.4.48 0 +192.168.4.47 0 +192.168.4.46 1 +192.168.4.45 2 +192.168.4.44 3 +192.168.4.43 4 +192.168.4.42 2 +192.168.4.41 0 +192.168.4.40 1 +192.168.4.39 4 +192.168.4.38 0 +192.168.4.37 1 +192.168.4.36 2 +192.168.4.35 3 +192.168.4.34 4 +192.168.4.33 3 +192.168.4.32 2 +192.168.4.31 0 +192.168.4.30 1 +192.168.4.29 2 +192.168.4.28 3 +192.168.4.27 4 +192.168.4.26 0 +192.168.4.25 2 +192.168.4.24 1 +192.168.4.23 3 +192.168.4.22 4 +192.168.4.21 0 +192.168.4.20 1 +192.168.4.19 2 +192.168.4.18 4 +192.168.4.17 3 +192.168.4.16 1 +192.168.4.15 0 +192.168.4.14 1 +192.168.4.13 2 +192.168.4.12 3 +192.168.4.11 4 +192.168.4.10 3 +192.168.4.9 0 +192.168.4.8 2 +192.168.4.7 2 +192.168.4.6 3 +192.168.4.5 4 +192.168.4.4 0 +192.168.4.3 1 +192.168.4.2 4 +192.168.4.1 4 +192.168.3.90 0 +192.168.3.89 1 +192.168.3.88 2 +192.168.3.87 3 +192.168.3.86 4 +192.168.3.85 0 +192.168.3.84 1 +192.168.3.83 2 +192.168.3.82 3 +192.168.3.81 4 +192.168.3.80 0 +192.168.3.79 0 +192.168.3.78 1 +192.168.3.77 2 +192.168.3.76 3 +192.168.3.75 4 +192.168.3.74 1 +192.168.3.73 2 +192.168.3.72 3 +192.168.3.71 3 +192.168.3.70 4 +192.168.3.69 0 +192.168.3.68 1 +192.168.3.67 2 +192.168.3.66 4 +192.168.3.65 0 +192.168.3.64 3 +192.168.3.63 0 +192.168.3.62 1 +192.168.3.61 2 +192.168.3.60 3 +192.168.3.59 4 +192.168.3.58 2 +192.168.3.57 1 +192.168.3.56 3 +192.168.3.55 0 +192.168.3.54 1 +192.168.3.53 2 +192.168.3.52 3 +192.168.3.51 4 +192.168.3.50 0 +192.168.3.49 4 +192.168.3.48 2 +192.168.3.47 0 +192.168.3.46 1 +192.168.3.45 2 +192.168.3.44 3 +192.168.3.43 4 +192.168.3.42 2 +192.168.3.41 1 +192.168.3.40 0 +192.168.3.39 1 +192.168.3.38 2 +192.168.3.37 3 +192.168.3.36 4 +192.168.3.35 0 +192.168.3.34 4 +192.168.3.33 3 +192.168.3.32 4 +192.168.3.31 0 +192.168.3.30 1 +192.168.3.29 2 +192.168.3.28 3 +192.168.3.27 4 +192.168.3.26 2 +192.168.3.25 1 +192.168.3.24 0 +192.168.3.23 3 +192.168.3.22 4 +192.168.3.21 0 +192.168.3.20 1 +192.168.3.19 2 +192.168.3.18 4 +192.168.3.17 3 +192.168.3.16 1 +192.168.3.15 0 +192.168.3.14 1 +192.168.3.13 2 +192.168.3.12 3 +192.168.3.11 4 +192.168.3.10 2 +192.168.3.9 1 +192.168.3.8 0 +192.168.3.7 4 +192.168.3.6 0 +192.168.3.5 1 +192.168.3.4 2 +192.168.3.3 3 +192.168.3.2 4 +192.168.3.1 3 +192.168.2.90 0 +192.168.2.89 1 +192.168.2.88 2 +192.168.2.87 3 +192.168.2.86 4 +192.168.2.85 0 +192.168.2.84 1 +192.168.2.83 2 +192.168.2.82 3 +192.168.2.81 4 +192.168.2.80 1 +192.168.2.79 0 +192.168.2.78 1 +192.168.2.77 2 +192.168.2.76 3 +192.168.2.75 4 +192.168.2.74 2 +192.168.2.73 3 +192.168.2.72 0 +192.168.2.71 3 +192.168.2.70 4 +192.168.2.69 0 +192.168.2.68 1 +192.168.2.67 2 +192.168.2.66 4 +192.168.2.65 1 +192.168.2.64 3 +192.168.2.63 0 +192.168.2.62 1 +192.168.2.61 2 +192.168.2.60 3 +192.168.2.59 4 +192.168.2.58 0 +192.168.2.57 2 +192.168.2.56 1 +192.168.2.55 0 +192.168.2.54 1 +192.168.2.53 2 +192.168.2.52 3 +192.168.2.51 4 +192.168.2.50 3 +192.168.2.49 4 +192.168.2.48 0 +192.168.2.47 0 +192.168.2.46 1 +192.168.2.45 2 +192.168.2.44 3 +192.168.2.43 4 +192.168.2.42 2 +192.168.2.41 0 +192.168.2.40 1 +192.168.2.39 0 +192.168.2.38 1 +192.168.2.37 2 +192.168.2.36 3 +192.168.2.35 4 +192.168.2.34 3 +192.168.2.33 4 +192.168.2.32 2 +192.168.2.31 0 +192.168.2.30 1 +192.168.2.29 2 +192.168.2.28 3 +192.168.2.27 4 +192.168.2.26 2 +192.168.2.25 0 +192.168.2.24 1 +192.168.2.23 3 +192.168.2.22 4 +192.168.2.21 0 +192.168.2.20 1 +192.168.2.19 2 +192.168.2.18 4 +192.168.2.17 3 +192.168.2.16 4 +192.168.2.15 0 +192.168.2.14 1 +192.168.2.13 2 +192.168.2.12 3 +192.168.2.11 4 +192.168.2.10 0 +192.168.2.9 2 +192.168.2.8 3 +192.168.2.7 2 +192.168.2.6 4 +192.168.2.5 0 +192.168.2.4 1 +192.168.2.3 3 +192.168.2.2 4 +192.168.2.1 1 +192.168.1.90 0 +192.168.1.89 1 +192.168.1.88 2 +192.168.1.87 3 +192.168.1.86 4 +192.168.1.85 0 +192.168.1.84 1 +192.168.1.83 2 +192.168.1.82 3 +192.168.1.81 4 +192.168.1.80 0 +192.168.1.79 0 +192.168.1.78 1 +192.168.1.77 2 +192.168.1.76 3 +192.168.1.75 4 +192.168.1.74 1 +192.168.1.73 2 +192.168.1.72 3 +192.168.1.71 3 +192.168.1.70 4 +192.168.1.69 0 +192.168.1.68 1 +192.168.1.67 2 +192.168.1.66 4 +192.168.1.65 0 +192.168.1.64 1 +192.168.1.63 0 +192.168.1.62 1 +192.168.1.61 2 +192.168.1.60 3 +192.168.1.59 4 +192.168.1.58 2 +192.168.1.57 3 +192.168.1.56 1 +192.168.1.55 0 +192.168.1.54 1 +192.168.1.53 2 +192.168.1.52 3 +192.168.1.51 4 +192.168.1.50 0 +192.168.1.49 4 +192.168.1.48 2 +192.168.1.47 0 +192.168.1.46 1 +192.168.1.45 2 +192.168.1.44 3 +192.168.1.43 4 +192.168.1.42 2 +192.168.1.41 3 +192.168.1.40 0 +192.168.1.39 3 +192.168.1.38 4 +192.168.1.37 0 +192.168.1.36 1 +192.168.1.35 2 +192.168.1.34 4 +192.168.1.33 1 +192.168.1.32 3 +192.168.1.31 0 +192.168.1.30 1 +192.168.1.29 2 +192.168.1.28 3 +192.168.1.27 4 +192.168.1.26 2 +192.168.1.25 3 +192.168.1.24 0 +192.168.1.23 3 +192.168.1.22 4 +192.168.1.21 0 +192.168.1.20 1 +192.168.1.19 2 +192.168.1.18 4 +192.168.1.17 1 +192.168.1.16 4 +192.168.1.15 0 +192.168.1.14 1 +192.168.1.13 2 +192.168.1.12 3 +192.168.1.11 4 +192.168.1.10 2 +192.168.1.9 3 +192.168.1.8 0 +192.168.1.7 3 +192.168.1.6 4 +192.168.1.5 0 +192.168.1.4 1 +192.168.1.3 2 +192.168.1.2 4 +192.168.1.1 1 +EOF + +simple_test 0,0,0,0,0 <<EOF +192.168.1.1 -1 +192.168.1.2 -1 +192.168.1.3 -1 +192.168.1.4 -1 +192.168.1.5 -1 +192.168.1.6 -1 +192.168.1.7 -1 +192.168.1.8 -1 +192.168.1.9 -1 +192.168.1.10 -1 +192.168.1.11 -1 +192.168.1.12 -1 +192.168.1.13 -1 +192.168.1.14 -1 +192.168.1.15 -1 +192.168.1.16 -1 +192.168.1.17 -1 +192.168.1.18 -1 +192.168.1.19 -1 +192.168.1.20 -1 +192.168.1.21 -1 +192.168.1.22 -1 +192.168.1.23 -1 +192.168.1.24 -1 +192.168.1.25 -1 +192.168.1.26 -1 +192.168.1.27 -1 +192.168.1.28 -1 +192.168.1.29 -1 +192.168.1.30 -1 +192.168.1.31 -1 +192.168.1.32 -1 +192.168.1.33 -1 +192.168.1.34 -1 +192.168.1.35 -1 +192.168.1.36 -1 +192.168.1.37 -1 +192.168.1.38 -1 +192.168.1.39 -1 +192.168.1.40 -1 +192.168.1.41 -1 +192.168.1.42 -1 +192.168.1.43 -1 +192.168.1.44 -1 +192.168.1.45 -1 +192.168.1.46 -1 +192.168.1.47 -1 +192.168.1.48 -1 +192.168.1.49 -1 +192.168.1.50 -1 +192.168.1.51 -1 +192.168.1.52 -1 +192.168.1.53 -1 +192.168.1.54 -1 +192.168.1.55 -1 +192.168.1.56 -1 +192.168.1.57 -1 +192.168.1.58 -1 +192.168.1.59 -1 +192.168.1.60 -1 +192.168.1.61 -1 +192.168.1.62 -1 +192.168.1.63 -1 +192.168.1.64 -1 +192.168.1.65 -1 +192.168.1.66 -1 +192.168.1.67 -1 +192.168.1.68 -1 +192.168.1.69 -1 +192.168.1.70 -1 +192.168.1.71 -1 +192.168.1.72 -1 +192.168.1.73 -1 +192.168.1.74 -1 +192.168.1.75 -1 +192.168.1.76 -1 +192.168.1.77 -1 +192.168.1.78 -1 +192.168.1.79 -1 +192.168.1.80 -1 +192.168.1.81 -1 +192.168.1.82 -1 +192.168.1.83 -1 +192.168.1.84 -1 +192.168.1.85 -1 +192.168.1.86 -1 +192.168.1.87 -1 +192.168.1.88 -1 +192.168.1.89 -1 +192.168.1.90 -1 +192.168.2.1 -1 +192.168.2.2 -1 +192.168.2.3 -1 +192.168.2.4 -1 +192.168.2.5 -1 +192.168.2.6 -1 +192.168.2.7 -1 +192.168.2.8 -1 +192.168.2.9 -1 +192.168.2.10 -1 +192.168.2.11 -1 +192.168.2.12 -1 +192.168.2.13 -1 +192.168.2.14 -1 +192.168.2.15 -1 +192.168.2.16 -1 +192.168.2.17 -1 +192.168.2.18 -1 +192.168.2.19 -1 +192.168.2.20 -1 +192.168.2.21 -1 +192.168.2.22 -1 +192.168.2.23 -1 +192.168.2.24 -1 +192.168.2.25 -1 +192.168.2.26 -1 +192.168.2.27 -1 +192.168.2.28 -1 +192.168.2.29 -1 +192.168.2.30 -1 +192.168.2.31 -1 +192.168.2.32 -1 +192.168.2.33 -1 +192.168.2.34 -1 +192.168.2.35 -1 +192.168.2.36 -1 +192.168.2.37 -1 +192.168.2.38 -1 +192.168.2.39 -1 +192.168.2.40 -1 +192.168.2.41 -1 +192.168.2.42 -1 +192.168.2.43 -1 +192.168.2.44 -1 +192.168.2.45 -1 +192.168.2.46 -1 +192.168.2.47 -1 +192.168.2.48 -1 +192.168.2.49 -1 +192.168.2.50 -1 +192.168.2.51 -1 +192.168.2.52 -1 +192.168.2.53 -1 +192.168.2.54 -1 +192.168.2.55 -1 +192.168.2.56 -1 +192.168.2.57 -1 +192.168.2.58 -1 +192.168.2.59 -1 +192.168.2.60 -1 +192.168.2.61 -1 +192.168.2.62 -1 +192.168.2.63 -1 +192.168.2.64 -1 +192.168.2.65 -1 +192.168.2.66 -1 +192.168.2.67 -1 +192.168.2.68 -1 +192.168.2.69 -1 +192.168.2.70 -1 +192.168.2.71 -1 +192.168.2.72 -1 +192.168.2.73 -1 +192.168.2.74 -1 +192.168.2.75 -1 +192.168.2.76 -1 +192.168.2.77 -1 +192.168.2.78 -1 +192.168.2.79 -1 +192.168.2.80 -1 +192.168.2.81 -1 +192.168.2.82 -1 +192.168.2.83 -1 +192.168.2.84 -1 +192.168.2.85 -1 +192.168.2.86 -1 +192.168.2.87 -1 +192.168.2.88 -1 +192.168.2.89 -1 +192.168.2.90 -1 +192.168.3.1 -1 +192.168.3.2 -1 +192.168.3.3 -1 +192.168.3.4 -1 +192.168.3.5 -1 +192.168.3.6 -1 +192.168.3.7 -1 +192.168.3.8 -1 +192.168.3.9 -1 +192.168.3.10 -1 +192.168.3.11 -1 +192.168.3.12 -1 +192.168.3.13 -1 +192.168.3.14 -1 +192.168.3.15 -1 +192.168.3.16 -1 +192.168.3.17 -1 +192.168.3.18 -1 +192.168.3.19 -1 +192.168.3.20 -1 +192.168.3.21 -1 +192.168.3.22 -1 +192.168.3.23 -1 +192.168.3.24 -1 +192.168.3.25 -1 +192.168.3.26 -1 +192.168.3.27 -1 +192.168.3.28 -1 +192.168.3.29 -1 +192.168.3.30 -1 +192.168.3.31 -1 +192.168.3.32 -1 +192.168.3.33 -1 +192.168.3.34 -1 +192.168.3.35 -1 +192.168.3.36 -1 +192.168.3.37 -1 +192.168.3.38 -1 +192.168.3.39 -1 +192.168.3.40 -1 +192.168.3.41 -1 +192.168.3.42 -1 +192.168.3.43 -1 +192.168.3.44 -1 +192.168.3.45 -1 +192.168.3.46 -1 +192.168.3.47 -1 +192.168.3.48 -1 +192.168.3.49 -1 +192.168.3.50 -1 +192.168.3.51 -1 +192.168.3.52 -1 +192.168.3.53 -1 +192.168.3.54 -1 +192.168.3.55 -1 +192.168.3.56 -1 +192.168.3.57 -1 +192.168.3.58 -1 +192.168.3.59 -1 +192.168.3.60 -1 +192.168.3.61 -1 +192.168.3.62 -1 +192.168.3.63 -1 +192.168.3.64 -1 +192.168.3.65 -1 +192.168.3.66 -1 +192.168.3.67 -1 +192.168.3.68 -1 +192.168.3.69 -1 +192.168.3.70 -1 +192.168.3.71 -1 +192.168.3.72 -1 +192.168.3.73 -1 +192.168.3.74 -1 +192.168.3.75 -1 +192.168.3.76 -1 +192.168.3.77 -1 +192.168.3.78 -1 +192.168.3.79 -1 +192.168.3.80 -1 +192.168.3.81 -1 +192.168.3.82 -1 +192.168.3.83 -1 +192.168.3.84 -1 +192.168.3.85 -1 +192.168.3.86 -1 +192.168.3.87 -1 +192.168.3.88 -1 +192.168.3.89 -1 +192.168.3.90 -1 +192.168.4.1 -1 +192.168.4.2 -1 +192.168.4.3 -1 +192.168.4.4 -1 +192.168.4.5 -1 +192.168.4.6 -1 +192.168.4.7 -1 +192.168.4.8 -1 +192.168.4.9 -1 +192.168.4.10 -1 +192.168.4.11 -1 +192.168.4.12 -1 +192.168.4.13 -1 +192.168.4.14 -1 +192.168.4.15 -1 +192.168.4.16 -1 +192.168.4.17 -1 +192.168.4.18 -1 +192.168.4.19 -1 +192.168.4.20 -1 +192.168.4.21 -1 +192.168.4.22 -1 +192.168.4.23 -1 +192.168.4.24 -1 +192.168.4.25 -1 +192.168.4.26 -1 +192.168.4.27 -1 +192.168.4.28 -1 +192.168.4.29 -1 +192.168.4.30 -1 +192.168.4.31 -1 +192.168.4.32 -1 +192.168.4.33 -1 +192.168.4.34 -1 +192.168.4.35 -1 +192.168.4.36 -1 +192.168.4.37 -1 +192.168.4.38 -1 +192.168.4.39 -1 +192.168.4.40 -1 +192.168.4.41 -1 +192.168.4.42 -1 +192.168.4.43 -1 +192.168.4.44 -1 +192.168.4.45 -1 +192.168.4.46 -1 +192.168.4.47 -1 +192.168.4.48 -1 +192.168.4.49 -1 +192.168.4.50 -1 +192.168.4.51 -1 +192.168.4.52 -1 +192.168.4.53 -1 +192.168.4.54 -1 +192.168.4.55 -1 +192.168.4.56 -1 +192.168.4.57 -1 +192.168.4.58 -1 +192.168.4.59 -1 +192.168.4.60 -1 +192.168.4.61 -1 +192.168.4.62 -1 +192.168.4.63 -1 +192.168.4.64 -1 +192.168.4.65 -1 +192.168.4.66 -1 +192.168.4.67 -1 +192.168.4.68 -1 +192.168.4.69 -1 +192.168.4.70 -1 +192.168.4.71 -1 +192.168.4.72 -1 +192.168.4.73 -1 +192.168.4.74 -1 +192.168.4.75 -1 +192.168.4.76 -1 +192.168.4.77 -1 +192.168.4.78 -1 +192.168.4.79 -1 +192.168.4.80 -1 +192.168.4.81 -1 +192.168.4.82 -1 +192.168.4.83 -1 +192.168.4.84 -1 +192.168.4.85 -1 +192.168.4.86 -1 +192.168.4.87 -1 +192.168.4.88 -1 +192.168.4.89 -1 +192.168.4.90 -1 +192.168.5.1 -1 +192.168.5.2 -1 +192.168.5.3 -1 +192.168.5.4 -1 +192.168.5.5 -1 +192.168.5.6 -1 +192.168.5.7 -1 +192.168.5.8 -1 +192.168.5.9 -1 +192.168.5.10 -1 +192.168.5.11 -1 +192.168.5.12 -1 +192.168.5.13 -1 +192.168.5.14 -1 +192.168.5.15 -1 +192.168.5.16 -1 +192.168.5.17 -1 +192.168.5.18 -1 +192.168.5.19 -1 +192.168.5.20 -1 +192.168.5.21 -1 +192.168.5.22 -1 +192.168.5.23 -1 +192.168.5.24 -1 +192.168.5.25 -1 +192.168.5.26 -1 +192.168.5.27 -1 +192.168.5.28 -1 +192.168.5.29 -1 +192.168.5.30 -1 +192.168.5.31 -1 +192.168.5.32 -1 +192.168.5.33 -1 +192.168.5.34 -1 +192.168.5.35 -1 +192.168.5.36 -1 +192.168.5.37 -1 +192.168.5.38 -1 +192.168.5.39 -1 +192.168.5.40 -1 +192.168.5.41 -1 +192.168.5.42 -1 +192.168.5.43 -1 +192.168.5.44 -1 +192.168.5.45 -1 +192.168.5.46 -1 +192.168.5.47 -1 +192.168.5.48 -1 +192.168.5.49 -1 +192.168.5.50 -1 +192.168.5.51 -1 +192.168.5.52 -1 +192.168.5.53 -1 +192.168.5.54 -1 +192.168.5.55 -1 +192.168.5.56 -1 +192.168.5.57 -1 +192.168.5.58 -1 +192.168.5.59 -1 +192.168.5.60 -1 +192.168.5.61 -1 +192.168.5.62 -1 +192.168.5.63 -1 +192.168.5.64 -1 +192.168.5.65 -1 +192.168.5.66 -1 +192.168.5.67 -1 +192.168.5.68 -1 +192.168.5.69 -1 +192.168.5.70 -1 +192.168.5.71 -1 +192.168.5.72 -1 +192.168.5.73 -1 +192.168.5.74 -1 +192.168.5.75 -1 +192.168.5.76 -1 +192.168.5.77 -1 +192.168.5.78 -1 +192.168.5.79 -1 +192.168.5.80 -1 +192.168.5.81 -1 +192.168.5.82 -1 +192.168.5.83 -1 +192.168.5.84 -1 +192.168.5.85 -1 +192.168.5.86 -1 +192.168.5.87 -1 +192.168.5.88 -1 +192.168.5.89 -1 +192.168.5.90 -1 +192.168.6.1 -1 +192.168.6.2 -1 +192.168.6.3 -1 +192.168.6.4 -1 +192.168.6.5 -1 +192.168.6.6 -1 +192.168.6.7 -1 +192.168.6.8 -1 +192.168.6.9 -1 +192.168.6.10 -1 +192.168.6.11 -1 +192.168.6.12 -1 +192.168.6.13 -1 +192.168.6.14 -1 +192.168.6.15 -1 +192.168.6.16 -1 +192.168.6.17 -1 +192.168.6.18 -1 +192.168.6.19 -1 +192.168.6.20 -1 +192.168.6.21 -1 +192.168.6.22 -1 +192.168.6.23 -1 +192.168.6.24 -1 +192.168.6.25 -1 +192.168.6.26 -1 +192.168.6.27 -1 +192.168.6.28 -1 +192.168.6.29 -1 +192.168.6.30 -1 +192.168.6.31 -1 +192.168.6.32 -1 +192.168.6.33 -1 +192.168.6.34 -1 +192.168.6.35 -1 +192.168.6.36 -1 +192.168.6.37 -1 +192.168.6.38 -1 +192.168.6.39 -1 +192.168.6.40 -1 +192.168.6.41 -1 +192.168.6.42 -1 +192.168.6.43 -1 +192.168.6.44 -1 +192.168.6.45 -1 +192.168.6.46 -1 +192.168.6.47 -1 +192.168.6.48 -1 +192.168.6.49 -1 +192.168.6.50 -1 +192.168.6.51 -1 +192.168.6.52 -1 +192.168.6.53 -1 +192.168.6.54 -1 +192.168.6.55 -1 +192.168.6.56 -1 +192.168.6.57 -1 +192.168.6.58 -1 +192.168.6.59 -1 +192.168.6.60 -1 +192.168.6.61 -1 +192.168.6.62 -1 +192.168.6.63 -1 +192.168.6.64 -1 +192.168.6.65 -1 +192.168.6.66 -1 +192.168.6.67 -1 +192.168.6.68 -1 +192.168.6.69 -1 +192.168.6.70 -1 +192.168.6.71 -1 +192.168.6.72 -1 +192.168.6.73 -1 +192.168.6.74 -1 +192.168.6.75 -1 +192.168.6.76 -1 +192.168.6.77 -1 +192.168.6.78 -1 +192.168.6.79 -1 +192.168.6.80 -1 +192.168.6.81 -1 +192.168.6.82 -1 +192.168.6.83 -1 +192.168.6.84 -1 +192.168.6.85 -1 +192.168.6.86 -1 +192.168.6.87 -1 +192.168.6.88 -1 +192.168.6.89 -1 +192.168.6.90 -1 +192.168.7.1 -1 +192.168.7.2 -1 +192.168.7.3 -1 +192.168.7.4 -1 +192.168.7.5 -1 +192.168.7.6 -1 +192.168.7.7 -1 +192.168.7.8 -1 +192.168.7.9 -1 +192.168.7.10 -1 +192.168.7.11 -1 +192.168.7.12 -1 +192.168.7.13 -1 +192.168.7.14 -1 +192.168.7.15 -1 +192.168.7.16 -1 +192.168.7.17 -1 +192.168.7.18 -1 +192.168.7.19 -1 +192.168.7.20 -1 +192.168.7.21 -1 +192.168.7.22 -1 +192.168.7.23 -1 +192.168.7.24 -1 +192.168.7.25 -1 +192.168.7.26 -1 +192.168.7.27 -1 +192.168.7.28 -1 +192.168.7.29 -1 +192.168.7.30 -1 +192.168.7.31 -1 +192.168.7.32 -1 +192.168.7.33 -1 +192.168.7.34 -1 +192.168.7.35 -1 +192.168.7.36 -1 +192.168.7.37 -1 +192.168.7.38 -1 +192.168.7.39 -1 +192.168.7.40 -1 +192.168.7.41 -1 +192.168.7.42 -1 +192.168.7.43 -1 +192.168.7.44 -1 +192.168.7.45 -1 +192.168.7.46 -1 +192.168.7.47 -1 +192.168.7.48 -1 +192.168.7.49 -1 +192.168.7.50 -1 +192.168.7.51 -1 +192.168.7.52 -1 +192.168.7.53 -1 +192.168.7.54 -1 +192.168.7.55 -1 +192.168.7.56 -1 +192.168.7.57 -1 +192.168.7.58 -1 +192.168.7.59 -1 +192.168.7.60 -1 +192.168.7.61 -1 +192.168.7.62 -1 +192.168.7.63 -1 +192.168.7.64 -1 +192.168.7.65 -1 +192.168.7.66 -1 +192.168.7.67 -1 +192.168.7.68 -1 +192.168.7.69 -1 +192.168.7.70 -1 +192.168.7.71 -1 +192.168.7.72 -1 +192.168.7.73 -1 +192.168.7.74 -1 +192.168.7.75 -1 +192.168.7.76 -1 +192.168.7.77 -1 +192.168.7.78 -1 +192.168.7.79 -1 +192.168.7.80 -1 +192.168.7.81 -1 +192.168.7.82 -1 +192.168.7.83 -1 +192.168.7.84 -1 +192.168.7.85 -1 +192.168.7.86 -1 +192.168.7.87 -1 +192.168.7.88 -1 +192.168.7.89 -1 +192.168.7.90 -1 +192.168.8.1 -1 +192.168.8.2 -1 +192.168.8.3 -1 +192.168.8.4 -1 +192.168.8.5 -1 +192.168.8.6 -1 +192.168.8.7 -1 +192.168.8.8 -1 +192.168.8.9 -1 +192.168.8.10 -1 +192.168.8.11 -1 +192.168.8.12 -1 +192.168.8.13 -1 +192.168.8.14 -1 +192.168.8.15 -1 +192.168.8.16 -1 +192.168.8.17 -1 +192.168.8.18 -1 +192.168.8.19 -1 +192.168.8.20 -1 +192.168.8.21 -1 +192.168.8.22 -1 +192.168.8.23 -1 +192.168.8.24 -1 +192.168.8.25 -1 +192.168.8.26 -1 +192.168.8.27 -1 +192.168.8.28 -1 +192.168.8.29 -1 +192.168.8.30 -1 +192.168.8.31 -1 +192.168.8.32 -1 +192.168.8.33 -1 +192.168.8.34 -1 +192.168.8.35 -1 +192.168.8.36 -1 +192.168.8.37 -1 +192.168.8.38 -1 +192.168.8.39 -1 +192.168.8.40 -1 +192.168.8.41 -1 +192.168.8.42 -1 +192.168.8.43 -1 +192.168.8.44 -1 +192.168.8.45 -1 +192.168.8.46 -1 +192.168.8.47 -1 +192.168.8.48 -1 +192.168.8.49 -1 +192.168.8.50 -1 +192.168.8.51 -1 +192.168.8.52 -1 +192.168.8.53 -1 +192.168.8.54 -1 +192.168.8.55 -1 +192.168.8.56 -1 +192.168.8.57 -1 +192.168.8.58 -1 +192.168.8.59 -1 +192.168.8.60 -1 +192.168.8.61 -1 +192.168.8.62 -1 +192.168.8.63 -1 +192.168.8.64 -1 +192.168.8.65 -1 +192.168.8.66 -1 +192.168.8.67 -1 +192.168.8.68 -1 +192.168.8.69 -1 +192.168.8.70 -1 +192.168.8.71 -1 +192.168.8.72 -1 +192.168.8.73 -1 +192.168.8.74 -1 +192.168.8.75 -1 +192.168.8.76 -1 +192.168.8.77 -1 +192.168.8.78 -1 +192.168.8.79 -1 +192.168.8.80 -1 +192.168.8.81 -1 +192.168.8.82 -1 +192.168.8.83 -1 +192.168.8.84 -1 +192.168.8.85 -1 +192.168.8.86 -1 +192.168.8.87 -1 +192.168.8.88 -1 +192.168.8.89 -1 +192.168.8.90 -1 +192.168.9.1 -1 +192.168.9.2 -1 +192.168.9.3 -1 +192.168.9.4 -1 +192.168.9.5 -1 +192.168.9.6 -1 +192.168.9.7 -1 +192.168.9.8 -1 +192.168.9.9 -1 +192.168.9.10 -1 +192.168.9.11 -1 +192.168.9.12 -1 +192.168.9.13 -1 +192.168.9.14 -1 +192.168.9.15 -1 +192.168.9.16 -1 +192.168.9.17 -1 +192.168.9.18 -1 +192.168.9.19 -1 +192.168.9.20 -1 +192.168.9.21 -1 +192.168.9.22 -1 +192.168.9.23 -1 +192.168.9.24 -1 +192.168.9.25 -1 +192.168.9.26 -1 +192.168.9.27 -1 +192.168.9.28 -1 +192.168.9.29 -1 +192.168.9.30 -1 +192.168.9.31 -1 +192.168.9.32 -1 +192.168.9.33 -1 +192.168.9.34 -1 +192.168.9.35 -1 +192.168.9.36 -1 +192.168.9.37 -1 +192.168.9.38 -1 +192.168.9.39 -1 +192.168.9.40 -1 +192.168.9.41 -1 +192.168.9.42 -1 +192.168.9.43 -1 +192.168.9.44 -1 +192.168.9.45 -1 +192.168.9.46 -1 +192.168.9.47 -1 +192.168.9.48 -1 +192.168.9.49 -1 +192.168.9.50 -1 +192.168.9.51 -1 +192.168.9.52 -1 +192.168.9.53 -1 +192.168.9.54 -1 +192.168.9.55 -1 +192.168.9.56 -1 +192.168.9.57 -1 +192.168.9.58 -1 +192.168.9.59 -1 +192.168.9.60 -1 +192.168.9.61 -1 +192.168.9.62 -1 +192.168.9.63 -1 +192.168.9.64 -1 +192.168.9.65 -1 +192.168.9.66 -1 +192.168.9.67 -1 +192.168.9.68 -1 +192.168.9.69 -1 +192.168.9.70 -1 +192.168.9.71 -1 +192.168.9.72 -1 +192.168.9.73 -1 +192.168.9.74 -1 +192.168.9.75 -1 +192.168.9.76 -1 +192.168.9.77 -1 +192.168.9.78 -1 +192.168.9.79 -1 +192.168.9.80 -1 +192.168.9.81 -1 +192.168.9.82 -1 +192.168.9.83 -1 +192.168.9.84 -1 +192.168.9.85 -1 +192.168.9.86 -1 +192.168.9.87 -1 +192.168.9.88 -1 +192.168.9.89 -1 +192.168.9.90 -1 +192.168.10.1 -1 +192.168.10.2 -1 +192.168.10.3 -1 +192.168.10.4 -1 +192.168.10.5 -1 +192.168.10.6 -1 +192.168.10.7 -1 +192.168.10.8 -1 +192.168.10.9 -1 +192.168.10.10 -1 +192.168.10.11 -1 +192.168.10.12 -1 +192.168.10.13 -1 +192.168.10.14 -1 +192.168.10.15 -1 +192.168.10.16 -1 +192.168.10.17 -1 +192.168.10.18 -1 +192.168.10.19 -1 +192.168.10.20 -1 +192.168.10.21 -1 +192.168.10.22 -1 +192.168.10.23 -1 +192.168.10.24 -1 +192.168.10.25 -1 +192.168.10.26 -1 +192.168.10.27 -1 +192.168.10.28 -1 +192.168.10.29 -1 +192.168.10.30 -1 +192.168.10.31 -1 +192.168.10.32 -1 +192.168.10.33 -1 +192.168.10.34 -1 +192.168.10.35 -1 +192.168.10.36 -1 +192.168.10.37 -1 +192.168.10.38 -1 +192.168.10.39 -1 +192.168.10.40 -1 +192.168.10.41 -1 +192.168.10.42 -1 +192.168.10.43 -1 +192.168.10.44 -1 +192.168.10.45 -1 +192.168.10.46 -1 +192.168.10.47 -1 +192.168.10.48 -1 +192.168.10.49 -1 +192.168.10.50 -1 +192.168.10.51 -1 +192.168.10.52 -1 +192.168.10.53 -1 +192.168.10.54 -1 +192.168.10.55 -1 +192.168.10.56 -1 +192.168.10.57 -1 +192.168.10.58 -1 +192.168.10.59 -1 +192.168.10.60 -1 +192.168.10.61 -1 +192.168.10.62 -1 +192.168.10.63 -1 +192.168.10.64 -1 +192.168.10.65 -1 +192.168.10.66 -1 +192.168.10.67 -1 +192.168.10.68 -1 +192.168.10.69 -1 +192.168.10.70 -1 +192.168.10.71 -1 +192.168.10.72 -1 +192.168.10.73 -1 +192.168.10.74 -1 +192.168.10.75 -1 +192.168.10.76 -1 +192.168.10.77 -1 +192.168.10.78 -1 +192.168.10.79 -1 +192.168.10.80 -1 +192.168.10.81 -1 +192.168.10.82 -1 +192.168.10.83 -1 +192.168.10.84 -1 +192.168.10.85 -1 +192.168.10.86 -1 +192.168.10.87 -1 +192.168.10.88 -1 +192.168.10.89 -1 +192.168.10.90 -1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.031.sh b/ctdb/tests/UNIT/takeover/lcp2.031.sh new file mode 100755 index 0000000..3a2cb79 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.031.sh @@ -0,0 +1,143 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "12+4 IPs, 4 nodes, 3 -> 4 healthy" + +export CTDB_TEST_LOGLEVEL=DEBUG + +required_result <<EOF +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES (UNASSIGNED) +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [0] +${TEST_DATE_STAMP} 1 [181370] +${TEST_DATE_STAMP} 2 [128630] +${TEST_DATE_STAMP} 3 [128881] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [181370] +${TEST_DATE_STAMP} 1 [-64566] -> 130.216.30.178 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-64566] -> 130.216.30.176 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-64315] -> 130.216.30.175 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-64315] -> 130.216.30.171 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-52489] -> 10.19.99.253 -> 0 [+0] +${TEST_DATE_STAMP} 1 [-52489] -> 10.19.99.250 -> 0 [+0] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-64566] -> 130.216.30.178 -> 0 [+0] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [0] +${TEST_DATE_STAMP} 1 [116804] +${TEST_DATE_STAMP} 2 [128630] +${TEST_DATE_STAMP} 3 [128881] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 3 [128881] +${TEST_DATE_STAMP} 3 [-55099] -> 130.216.30.180 -> 0 [+15625] +${TEST_DATE_STAMP} 3 [-55099] -> 130.216.30.177 -> 0 [+15876] +${TEST_DATE_STAMP} 3 [-55350] -> 130.216.30.174 -> 0 [+15129] +${TEST_DATE_STAMP} 3 [-55350] -> 130.216.30.173 -> 0 [+15129] +${TEST_DATE_STAMP} 3 [-36864] -> 10.19.99.252 -> 0 [+9216] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}3 [-55350] -> 130.216.30.174 -> 0 [+15129] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [15129] +${TEST_DATE_STAMP} 1 [116804] +${TEST_DATE_STAMP} 2 [128630] +${TEST_DATE_STAMP} 3 [73531] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 2 [128630] +${TEST_DATE_STAMP} 2 [-55099] -> 130.216.30.181 -> 0 [+30754] +${TEST_DATE_STAMP} 2 [-55099] -> 130.216.30.179 -> 0 [+31258] +${TEST_DATE_STAMP} 2 [-55099] -> 130.216.30.172 -> 0 [+31005] +${TEST_DATE_STAMP} 2 [-55099] -> 130.216.30.170 -> 0 [+30754] +${TEST_DATE_STAMP} 2 [-36864] -> 10.19.99.251 -> 0 [+18432] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}2 [-55099] -> 130.216.30.181 -> 0 [+30754] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [45883] +${TEST_DATE_STAMP} 1 [116804] +${TEST_DATE_STAMP} 2 [73531] +${TEST_DATE_STAMP} 3 [73531] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [116804] +${TEST_DATE_STAMP} 1 [-48690] -> 130.216.30.176 -> 0 [+46630] +${TEST_DATE_STAMP} 1 [-49186] -> 130.216.30.175 -> 0 [+46387] +${TEST_DATE_STAMP} 1 [-49186] -> 130.216.30.171 -> 0 [+45883] +${TEST_DATE_STAMP} 1 [-43273] -> 10.19.99.253 -> 0 [+27648] +${TEST_DATE_STAMP} 1 [-43273] -> 10.19.99.250 -> 0 [+27648] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP}1 [-43273] -> 10.19.99.253 -> 0 [+27648] +${TEST_DATE_STAMP}+++++++++++++++++++++++++++++++++++++++++ +${TEST_DATE_STAMP}Selecting most imbalanced node from: +${TEST_DATE_STAMP} 0 [73531] +${TEST_DATE_STAMP} 1 [73531] +${TEST_DATE_STAMP} 2 [73531] +${TEST_DATE_STAMP} 3 [73531] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 0 [73531] +${TEST_DATE_STAMP} 0 [-39970] -> 130.216.30.181 -> 0 [+39970] +${TEST_DATE_STAMP} 0 [-39970] -> 130.216.30.178 -> 0 [+39970] +${TEST_DATE_STAMP} 0 [-39474] -> 130.216.30.174 -> 0 [+39474] +${TEST_DATE_STAMP} 0 [-27648] -> 10.19.99.253 -> 0 [+27648] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 1 [73531] +${TEST_DATE_STAMP} 1 [-39474] -> 130.216.30.176 -> 0 [+55846] +${TEST_DATE_STAMP} 1 [-39970] -> 130.216.30.175 -> 0 [+55603] +${TEST_DATE_STAMP} 1 [-39970] -> 130.216.30.171 -> 0 [+55099] +${TEST_DATE_STAMP} 1 [-27648] -> 10.19.99.250 -> 0 [+43273] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 2 [73531] +${TEST_DATE_STAMP} 2 [-39474] -> 130.216.30.179 -> 0 [+56099] +${TEST_DATE_STAMP} 2 [-39970] -> 130.216.30.172 -> 0 [+55350] +${TEST_DATE_STAMP} 2 [-39970] -> 130.216.30.170 -> 0 [+55099] +${TEST_DATE_STAMP} 2 [-27648] -> 10.19.99.251 -> 0 [+43273] +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} ---------------------------------------- +${TEST_DATE_STAMP} CONSIDERING MOVES FROM 3 [73531] +${TEST_DATE_STAMP} 3 [-39970] -> 130.216.30.180 -> 0 [+56099] +${TEST_DATE_STAMP} 3 [-39970] -> 130.216.30.177 -> 0 [+55846] +${TEST_DATE_STAMP} 3 [-39474] -> 130.216.30.173 -> 0 [+55350] +${TEST_DATE_STAMP} 3 [-27648] -> 10.19.99.252 -> 0 [+43777] +${TEST_DATE_STAMP} ---------------------------------------- +130.216.30.181 0 +130.216.30.180 3 +130.216.30.179 2 +130.216.30.178 0 +130.216.30.177 3 +130.216.30.176 1 +130.216.30.175 1 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 1 +130.216.30.170 2 +10.19.99.253 0 +10.19.99.252 3 +10.19.99.251 2 +10.19.99.250 1 +EOF + +simple_test 0,0,0,0 <<EOF +10.19.99.250 1 +10.19.99.251 2 +10.19.99.252 3 +10.19.99.253 1 +130.216.30.170 2 +130.216.30.171 1 +130.216.30.172 2 +130.216.30.173 3 +130.216.30.174 3 +130.216.30.175 1 +130.216.30.176 1 +130.216.30.177 3 +130.216.30.178 1 +130.216.30.179 2 +130.216.30.180 3 +130.216.30.181 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.032.sh b/ctdb/tests/UNIT/takeover/lcp2.032.sh new file mode 100755 index 0000000..fa032f4 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.032.sh @@ -0,0 +1,450 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "12+4 IPs, 4 nodes, multiple transitions" + +export CTDB_TEST_LOGLEVEL=ERR + +set -e + +echo "Node 3 stopped -> continue node 3, all healthy" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 3 +130.216.30.179 2 +130.216.30.178 1 +130.216.30.177 3 +130.216.30.176 0 +130.216.30.175 1 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 1 +130.216.30.170 0 +10.19.99.253 1 +10.19.99.252 3 +10.19.99.251 2 +10.19.99.250 0 +EOF + +simple_test 0,0,0,0 <<EOF +10.19.99.250 0 +10.19.99.251 2 +10.19.99.252 0 +10.19.99.253 1 +130.216.30.170 0 +130.216.30.171 1 +130.216.30.172 2 +130.216.30.173 2 +130.216.30.174 0 +130.216.30.175 1 +130.216.30.176 0 +130.216.30.177 0 +130.216.30.178 1 +130.216.30.179 2 +130.216.30.180 1 +130.216.30.181 2 +EOF + +echo "All healthy -> stop node 0" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 3 +130.216.30.179 2 +130.216.30.178 1 +130.216.30.177 3 +130.216.30.176 1 +130.216.30.175 1 +130.216.30.174 3 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 1 +130.216.30.170 2 +10.19.99.253 1 +10.19.99.252 3 +10.19.99.251 2 +10.19.99.250 1 +EOF + +simple_test 0x20,0,0,0 <<EOF +$_out +EOF + +echo "Continue node 0, all healthy" + +required_result <<EOF +130.216.30.181 0 +130.216.30.180 3 +130.216.30.179 2 +130.216.30.178 0 +130.216.30.177 3 +130.216.30.176 1 +130.216.30.175 1 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 1 +130.216.30.170 2 +10.19.99.253 0 +10.19.99.252 3 +10.19.99.251 2 +10.19.99.250 1 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> stop node 1" + +required_result <<EOF +130.216.30.181 0 +130.216.30.180 3 +130.216.30.179 2 +130.216.30.178 0 +130.216.30.177 3 +130.216.30.176 2 +130.216.30.175 0 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 3 +130.216.30.170 2 +10.19.99.253 0 +10.19.99.252 3 +10.19.99.251 2 +10.19.99.250 0 +EOF + +simple_test 0,0x20,0,0 <<EOF +$_out +EOF + +echo "Continue node 1, all healthy" + +required_result <<EOF +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 1 +130.216.30.178 0 +130.216.30.177 3 +130.216.30.176 2 +130.216.30.175 1 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 3 +130.216.30.170 2 +10.19.99.253 1 +10.19.99.252 3 +10.19.99.251 2 +10.19.99.250 0 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> Stop node 2" + +required_result <<EOF +130.216.30.181 0 +130.216.30.180 1 +130.216.30.179 1 +130.216.30.178 0 +130.216.30.177 3 +130.216.30.176 3 +130.216.30.175 1 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 1 +130.216.30.171 3 +130.216.30.170 0 +10.19.99.253 1 +10.19.99.252 3 +10.19.99.251 1 +10.19.99.250 0 +EOF + +simple_test 0,0,0x20,0 <<EOF +$_out +EOF + +echo "Continue node 2, all healthy" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 1 +130.216.30.179 1 +130.216.30.178 0 +130.216.30.177 2 +130.216.30.176 3 +130.216.30.175 2 +130.216.30.174 0 +130.216.30.173 3 +130.216.30.172 1 +130.216.30.171 3 +130.216.30.170 0 +10.19.99.253 2 +10.19.99.252 3 +10.19.99.251 1 +10.19.99.250 0 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> stop node 3" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 1 +130.216.30.179 1 +130.216.30.178 0 +130.216.30.177 2 +130.216.30.176 0 +130.216.30.175 2 +130.216.30.174 0 +130.216.30.173 2 +130.216.30.172 1 +130.216.30.171 1 +130.216.30.170 0 +10.19.99.253 2 +10.19.99.252 0 +10.19.99.251 1 +10.19.99.250 0 +EOF + +simple_test 0,0,0,0x20 <<EOF +$_out +EOF + +echo "Continue node 3, all healthy" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 3 +130.216.30.179 1 +130.216.30.178 3 +130.216.30.177 2 +130.216.30.176 0 +130.216.30.175 3 +130.216.30.174 0 +130.216.30.173 2 +130.216.30.172 1 +130.216.30.171 1 +130.216.30.170 0 +10.19.99.253 2 +10.19.99.252 3 +10.19.99.251 1 +10.19.99.250 0 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> node 0 stopped" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 3 +130.216.30.179 1 +130.216.30.178 3 +130.216.30.177 2 +130.216.30.176 1 +130.216.30.175 3 +130.216.30.174 2 +130.216.30.173 2 +130.216.30.172 1 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 2 +10.19.99.252 3 +10.19.99.251 1 +10.19.99.250 2 +EOF + +simple_test 0x20,0,0,0 <<EOF +$_out +EOF + +echo "Continue node 0, all healthy" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 0 +130.216.30.179 0 +130.216.30.178 3 +130.216.30.177 2 +130.216.30.176 1 +130.216.30.175 3 +130.216.30.174 0 +130.216.30.173 2 +130.216.30.172 1 +130.216.30.171 1 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 3 +10.19.99.251 1 +10.19.99.250 2 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> node 1 stopped" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 0 +130.216.30.179 0 +130.216.30.178 3 +130.216.30.177 2 +130.216.30.176 3 +130.216.30.175 3 +130.216.30.174 0 +130.216.30.173 2 +130.216.30.172 0 +130.216.30.171 2 +130.216.30.170 3 +10.19.99.253 0 +10.19.99.252 3 +10.19.99.251 0 +10.19.99.250 2 +EOF + +simple_test 0,0x20,0,0 <<EOF +$_out +EOF + +echo "Continue node 1, all healthy" + +required_result <<EOF +130.216.30.181 1 +130.216.30.180 0 +130.216.30.179 0 +130.216.30.178 1 +130.216.30.177 2 +130.216.30.176 3 +130.216.30.175 3 +130.216.30.174 1 +130.216.30.173 2 +130.216.30.172 0 +130.216.30.171 2 +130.216.30.170 3 +10.19.99.253 1 +10.19.99.252 3 +10.19.99.251 0 +10.19.99.250 2 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> node 2 stopped" + +required_result <<EOF +130.216.30.181 1 +130.216.30.180 0 +130.216.30.179 0 +130.216.30.178 1 +130.216.30.177 3 +130.216.30.176 3 +130.216.30.175 3 +130.216.30.174 1 +130.216.30.173 1 +130.216.30.172 0 +130.216.30.171 0 +130.216.30.170 3 +10.19.99.253 1 +10.19.99.252 3 +10.19.99.251 0 +10.19.99.250 1 +EOF + +simple_test 0,0,0x20,0 <<EOF +$_out +EOF + +echo "Continue node 2, all healthy" + +required_result <<EOF +130.216.30.181 1 +130.216.30.180 2 +130.216.30.179 0 +130.216.30.178 1 +130.216.30.177 2 +130.216.30.176 3 +130.216.30.175 3 +130.216.30.174 2 +130.216.30.173 1 +130.216.30.172 0 +130.216.30.171 0 +130.216.30.170 3 +10.19.99.253 2 +10.19.99.252 3 +10.19.99.251 0 +10.19.99.250 1 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + +echo "All healthy -> node 3 stopped" + +required_result <<EOF +130.216.30.181 1 +130.216.30.180 2 +130.216.30.179 0 +130.216.30.178 1 +130.216.30.177 2 +130.216.30.176 0 +130.216.30.175 2 +130.216.30.174 2 +130.216.30.173 1 +130.216.30.172 0 +130.216.30.171 0 +130.216.30.170 1 +10.19.99.253 2 +10.19.99.252 0 +10.19.99.251 0 +10.19.99.250 1 +EOF + +simple_test 0,0,0,0x20 <<EOF +$_out +EOF + +echo "Continue node 3, all healthy" + +required_result <<EOF +130.216.30.181 3 +130.216.30.180 2 +130.216.30.179 3 +130.216.30.178 1 +130.216.30.177 2 +130.216.30.176 0 +130.216.30.175 3 +130.216.30.174 2 +130.216.30.173 1 +130.216.30.172 0 +130.216.30.171 0 +130.216.30.170 1 +10.19.99.253 2 +10.19.99.252 3 +10.19.99.251 0 +10.19.99.250 1 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF + diff --git a/ctdb/tests/UNIT/takeover/lcp2.033.sh b/ctdb/tests/UNIT/takeover/lcp2.033.sh new file mode 100755 index 0000000..206699a --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.033.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "12+4 IPs, 4 nodes, 2 -> 3 -> 4 healthy" + +export CTDB_TEST_LOGLEVEL=ERR + +set -e + +echo "Nodes 2, 3 disconnected -> node 2 attaches" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 0 +130.216.30.179 2 +130.216.30.178 1 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 2 +130.216.30.173 1 +130.216.30.172 2 +130.216.30.171 1 +130.216.30.170 0 +10.19.99.253 2 +10.19.99.252 0 +10.19.99.251 1 +10.19.99.250 0 +EOF + +simple_test 0,0,0,1 <<EOF +10.19.99.253 1 +10.19.99.252 0 +10.19.99.251 1 +10.19.99.250 0 +130.216.30.181 1 +130.216.30.180 0 +130.216.30.179 0 +130.216.30.178 1 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 1 +130.216.30.173 1 +130.216.30.172 0 +130.216.30.171 1 +130.216.30.170 0 +EOF + +echo "Node 3 attaches" + +required_result <<EOF +130.216.30.181 2 +130.216.30.180 3 +130.216.30.179 3 +130.216.30.178 1 +130.216.30.177 0 +130.216.30.176 1 +130.216.30.175 0 +130.216.30.174 2 +130.216.30.173 3 +130.216.30.172 2 +130.216.30.171 1 +130.216.30.170 0 +10.19.99.253 2 +10.19.99.252 3 +10.19.99.251 1 +10.19.99.250 0 +EOF + +simple_test 0,0,0,0 <<EOF +$_out +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.034.sh b/ctdb/tests/UNIT/takeover/lcp2.034.sh new file mode 100755 index 0000000..6cea2d5 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.034.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 without IP addresses" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.140.4 0 +192.168.140.3 1 +192.168.140.2 0 +192.168.140.1 1 +EOF + +simple_test 0,0,0 <<EOF +192.168.140.1 -1 0,1 +192.168.140.2 -1 0,1 +192.168.140.3 -1 0,1 +192.168.140.4 -1 0,1 +EOF diff --git a/ctdb/tests/UNIT/takeover/lcp2.035.sh b/ctdb/tests/UNIT/takeover/lcp2.035.sh new file mode 100755 index 0000000..2bb58f5 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/lcp2.035.sh @@ -0,0 +1,1813 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "900 IPs, all 5 nodes healthy, all assigned, no-op" + +export CTDB_TEST_LOGLEVEL=ERR + +required_result <<EOF +192.168.10.90 0 +192.168.10.89 1 +192.168.10.88 2 +192.168.10.87 3 +192.168.10.86 4 +192.168.10.85 0 +192.168.10.84 1 +192.168.10.83 2 +192.168.10.82 3 +192.168.10.81 4 +192.168.10.80 0 +192.168.10.79 0 +192.168.10.78 1 +192.168.10.77 2 +192.168.10.76 3 +192.168.10.75 4 +192.168.10.74 1 +192.168.10.73 2 +192.168.10.72 3 +192.168.10.71 3 +192.168.10.70 4 +192.168.10.69 0 +192.168.10.68 1 +192.168.10.67 2 +192.168.10.66 4 +192.168.10.65 0 +192.168.10.64 1 +192.168.10.63 0 +192.168.10.62 1 +192.168.10.61 2 +192.168.10.60 3 +192.168.10.59 4 +192.168.10.58 2 +192.168.10.57 3 +192.168.10.56 0 +192.168.10.55 0 +192.168.10.54 1 +192.168.10.53 2 +192.168.10.52 3 +192.168.10.51 4 +192.168.10.50 1 +192.168.10.49 4 +192.168.10.48 2 +192.168.10.47 0 +192.168.10.46 1 +192.168.10.45 2 +192.168.10.44 3 +192.168.10.43 4 +192.168.10.42 2 +192.168.10.41 3 +192.168.10.40 1 +192.168.10.39 3 +192.168.10.38 4 +192.168.10.37 0 +192.168.10.36 1 +192.168.10.35 2 +192.168.10.34 4 +192.168.10.33 0 +192.168.10.32 3 +192.168.10.31 0 +192.168.10.30 1 +192.168.10.29 2 +192.168.10.28 3 +192.168.10.27 4 +192.168.10.26 3 +192.168.10.25 2 +192.168.10.24 0 +192.168.10.23 3 +192.168.10.22 4 +192.168.10.21 0 +192.168.10.20 1 +192.168.10.19 2 +192.168.10.18 4 +192.168.10.17 1 +192.168.10.16 4 +192.168.10.15 0 +192.168.10.14 1 +192.168.10.13 2 +192.168.10.12 3 +192.168.10.11 4 +192.168.10.10 2 +192.168.10.9 3 +192.168.10.8 4 +192.168.10.7 0 +192.168.10.6 1 +192.168.10.5 2 +192.168.10.4 3 +192.168.10.3 4 +192.168.10.2 0 +192.168.10.1 1 +192.168.9.90 0 +192.168.9.89 1 +192.168.9.88 2 +192.168.9.87 3 +192.168.9.86 4 +192.168.9.85 0 +192.168.9.84 1 +192.168.9.83 2 +192.168.9.82 3 +192.168.9.81 4 +192.168.9.80 0 +192.168.9.79 0 +192.168.9.78 1 +192.168.9.77 2 +192.168.9.76 3 +192.168.9.75 4 +192.168.9.74 1 +192.168.9.73 2 +192.168.9.72 3 +192.168.9.71 3 +192.168.9.70 4 +192.168.9.69 0 +192.168.9.68 1 +192.168.9.67 2 +192.168.9.66 4 +192.168.9.65 0 +192.168.9.64 1 +192.168.9.63 0 +192.168.9.62 1 +192.168.9.61 2 +192.168.9.60 3 +192.168.9.59 4 +192.168.9.58 2 +192.168.9.57 3 +192.168.9.56 4 +192.168.9.55 0 +192.168.9.54 1 +192.168.9.53 2 +192.168.9.52 3 +192.168.9.51 4 +192.168.9.50 0 +192.168.9.49 1 +192.168.9.48 2 +192.168.9.47 0 +192.168.9.46 1 +192.168.9.45 2 +192.168.9.44 3 +192.168.9.43 4 +192.168.9.42 2 +192.168.9.41 4 +192.168.9.40 3 +192.168.9.39 0 +192.168.9.38 1 +192.168.9.37 2 +192.168.9.36 3 +192.168.9.35 4 +192.168.9.34 0 +192.168.9.33 1 +192.168.9.32 4 +192.168.9.31 0 +192.168.9.30 1 +192.168.9.29 2 +192.168.9.28 3 +192.168.9.27 4 +192.168.9.26 2 +192.168.9.25 3 +192.168.9.24 0 +192.168.9.23 3 +192.168.9.22 4 +192.168.9.21 0 +192.168.9.20 1 +192.168.9.19 2 +192.168.9.18 4 +192.168.9.17 1 +192.168.9.16 3 +192.168.9.15 0 +192.168.9.14 1 +192.168.9.13 2 +192.168.9.12 3 +192.168.9.11 4 +192.168.9.10 2 +192.168.9.9 4 +192.168.9.8 3 +192.168.9.7 0 +192.168.9.6 1 +192.168.9.5 2 +192.168.9.4 3 +192.168.9.3 4 +192.168.9.2 0 +192.168.9.1 1 +192.168.8.90 0 +192.168.8.89 1 +192.168.8.88 2 +192.168.8.87 3 +192.168.8.86 4 +192.168.8.85 0 +192.168.8.84 1 +192.168.8.83 2 +192.168.8.82 3 +192.168.8.81 4 +192.168.8.80 0 +192.168.8.79 0 +192.168.8.78 1 +192.168.8.77 2 +192.168.8.76 3 +192.168.8.75 4 +192.168.8.74 1 +192.168.8.73 2 +192.168.8.72 3 +192.168.8.71 3 +192.168.8.70 4 +192.168.8.69 0 +192.168.8.68 1 +192.168.8.67 2 +192.168.8.66 4 +192.168.8.65 3 +192.168.8.64 0 +192.168.8.63 0 +192.168.8.62 1 +192.168.8.61 2 +192.168.8.60 3 +192.168.8.59 4 +192.168.8.58 1 +192.168.8.57 2 +192.168.8.56 3 +192.168.8.55 0 +192.168.8.54 1 +192.168.8.53 2 +192.168.8.52 3 +192.168.8.51 4 +192.168.8.50 0 +192.168.8.49 4 +192.168.8.48 1 +192.168.8.47 0 +192.168.8.46 1 +192.168.8.45 2 +192.168.8.44 3 +192.168.8.43 4 +192.168.8.42 2 +192.168.8.41 1 +192.168.8.40 4 +192.168.8.39 0 +192.168.8.38 1 +192.168.8.37 2 +192.168.8.36 3 +192.168.8.35 4 +192.168.8.34 3 +192.168.8.33 0 +192.168.8.32 2 +192.168.8.31 0 +192.168.8.30 1 +192.168.8.29 2 +192.168.8.28 3 +192.168.8.27 4 +192.168.8.26 2 +192.168.8.25 1 +192.168.8.24 3 +192.168.8.23 3 +192.168.8.22 4 +192.168.8.21 0 +192.168.8.20 1 +192.168.8.19 2 +192.168.8.18 4 +192.168.8.17 0 +192.168.8.16 4 +192.168.8.15 0 +192.168.8.14 1 +192.168.8.13 2 +192.168.8.12 3 +192.168.8.11 4 +192.168.8.10 1 +192.168.8.9 2 +192.168.8.8 4 +192.168.8.7 0 +192.168.8.6 1 +192.168.8.5 2 +192.168.8.4 3 +192.168.8.3 4 +192.168.8.2 3 +192.168.8.1 0 +192.168.7.90 0 +192.168.7.89 1 +192.168.7.88 2 +192.168.7.87 3 +192.168.7.86 4 +192.168.7.85 0 +192.168.7.84 1 +192.168.7.83 2 +192.168.7.82 3 +192.168.7.81 4 +192.168.7.80 1 +192.168.7.79 0 +192.168.7.78 1 +192.168.7.77 2 +192.168.7.76 3 +192.168.7.75 4 +192.168.7.74 2 +192.168.7.73 3 +192.168.7.72 0 +192.168.7.71 3 +192.168.7.70 4 +192.168.7.69 0 +192.168.7.68 1 +192.168.7.67 2 +192.168.7.66 4 +192.168.7.65 1 +192.168.7.64 3 +192.168.7.63 0 +192.168.7.62 1 +192.168.7.61 2 +192.168.7.60 3 +192.168.7.59 4 +192.168.7.58 2 +192.168.7.57 0 +192.168.7.56 1 +192.168.7.55 0 +192.168.7.54 1 +192.168.7.53 2 +192.168.7.52 3 +192.168.7.51 4 +192.168.7.50 3 +192.168.7.49 4 +192.168.7.48 2 +192.168.7.47 0 +192.168.7.46 1 +192.168.7.45 2 +192.168.7.44 3 +192.168.7.43 4 +192.168.7.42 2 +192.168.7.41 0 +192.168.7.40 1 +192.168.7.39 4 +192.168.7.38 0 +192.168.7.37 1 +192.168.7.36 2 +192.168.7.35 3 +192.168.7.34 4 +192.168.7.33 3 +192.168.7.32 0 +192.168.7.31 0 +192.168.7.30 1 +192.168.7.29 2 +192.168.7.28 3 +192.168.7.27 4 +192.168.7.26 2 +192.168.7.25 0 +192.168.7.24 1 +192.168.7.23 3 +192.168.7.22 4 +192.168.7.21 0 +192.168.7.20 1 +192.168.7.19 2 +192.168.7.18 4 +192.168.7.17 3 +192.168.7.16 4 +192.168.7.15 0 +192.168.7.14 1 +192.168.7.13 2 +192.168.7.12 3 +192.168.7.11 4 +192.168.7.10 3 +192.168.7.9 2 +192.168.7.8 0 +192.168.7.7 2 +192.168.7.6 4 +192.168.7.5 0 +192.168.7.4 1 +192.168.7.3 3 +192.168.7.2 4 +192.168.7.1 1 +192.168.6.90 0 +192.168.6.89 1 +192.168.6.88 2 +192.168.6.87 3 +192.168.6.86 4 +192.168.6.85 0 +192.168.6.84 1 +192.168.6.83 2 +192.168.6.82 4 +192.168.6.81 3 +192.168.6.80 0 +192.168.6.79 0 +192.168.6.78 1 +192.168.6.77 2 +192.168.6.76 3 +192.168.6.75 4 +192.168.6.74 2 +192.168.6.73 3 +192.168.6.72 1 +192.168.6.71 3 +192.168.6.70 4 +192.168.6.69 0 +192.168.6.68 1 +192.168.6.67 2 +192.168.6.66 4 +192.168.6.65 0 +192.168.6.64 1 +192.168.6.63 0 +192.168.6.62 1 +192.168.6.61 2 +192.168.6.60 3 +192.168.6.59 4 +192.168.6.58 2 +192.168.6.57 3 +192.168.6.56 0 +192.168.6.55 3 +192.168.6.54 4 +192.168.6.53 1 +192.168.6.52 2 +192.168.6.51 0 +192.168.6.50 4 +192.168.6.49 1 +192.168.6.48 2 +192.168.6.47 0 +192.168.6.46 1 +192.168.6.45 2 +192.168.6.44 3 +192.168.6.43 4 +192.168.6.42 2 +192.168.6.41 4 +192.168.6.40 3 +192.168.6.39 0 +192.168.6.38 1 +192.168.6.37 2 +192.168.6.36 3 +192.168.6.35 4 +192.168.6.34 0 +192.168.6.33 1 +192.168.6.32 4 +192.168.6.31 0 +192.168.6.30 1 +192.168.6.29 2 +192.168.6.28 3 +192.168.6.27 4 +192.168.6.26 2 +192.168.6.25 3 +192.168.6.24 0 +192.168.6.23 3 +192.168.6.22 4 +192.168.6.21 0 +192.168.6.20 1 +192.168.6.19 2 +192.168.6.18 4 +192.168.6.17 1 +192.168.6.16 3 +192.168.6.15 0 +192.168.6.14 1 +192.168.6.13 2 +192.168.6.12 3 +192.168.6.11 4 +192.168.6.10 2 +192.168.6.9 3 +192.168.6.8 4 +192.168.6.7 0 +192.168.6.6 1 +192.168.6.5 2 +192.168.6.4 3 +192.168.6.3 4 +192.168.6.2 0 +192.168.6.1 1 +192.168.5.90 0 +192.168.5.89 1 +192.168.5.88 2 +192.168.5.87 3 +192.168.5.86 4 +192.168.5.85 0 +192.168.5.84 1 +192.168.5.83 2 +192.168.5.82 4 +192.168.5.81 3 +192.168.5.80 0 +192.168.5.79 0 +192.168.5.78 1 +192.168.5.77 2 +192.168.5.76 3 +192.168.5.75 4 +192.168.5.74 2 +192.168.5.73 3 +192.168.5.72 1 +192.168.5.71 3 +192.168.5.70 4 +192.168.5.69 2 +192.168.5.68 0 +192.168.5.67 1 +192.168.5.66 4 +192.168.5.65 2 +192.168.5.64 0 +192.168.5.63 0 +192.168.5.62 1 +192.168.5.61 2 +192.168.5.60 3 +192.168.5.59 4 +192.168.5.58 1 +192.168.5.57 3 +192.168.5.56 2 +192.168.5.55 0 +192.168.5.54 1 +192.168.5.53 2 +192.168.5.52 3 +192.168.5.51 4 +192.168.5.50 0 +192.168.5.49 4 +192.168.5.48 1 +192.168.5.47 0 +192.168.5.46 1 +192.168.5.45 2 +192.168.5.44 3 +192.168.5.43 4 +192.168.5.42 1 +192.168.5.41 3 +192.168.5.40 2 +192.168.5.39 2 +192.168.5.38 3 +192.168.5.37 4 +192.168.5.36 0 +192.168.5.35 1 +192.168.5.34 4 +192.168.5.33 0 +192.168.5.32 4 +192.168.5.31 0 +192.168.5.30 1 +192.168.5.29 2 +192.168.5.28 3 +192.168.5.27 4 +192.168.5.26 1 +192.168.5.25 3 +192.168.5.24 2 +192.168.5.23 3 +192.168.5.22 4 +192.168.5.21 2 +192.168.5.20 0 +192.168.5.19 1 +192.168.5.18 4 +192.168.5.17 0 +192.168.5.16 3 +192.168.5.15 0 +192.168.5.14 1 +192.168.5.13 2 +192.168.5.12 3 +192.168.5.11 4 +192.168.5.10 1 +192.168.5.9 4 +192.168.5.8 3 +192.168.5.7 0 +192.168.5.6 1 +192.168.5.5 2 +192.168.5.4 3 +192.168.5.3 4 +192.168.5.2 2 +192.168.5.1 0 +192.168.4.90 0 +192.168.4.89 1 +192.168.4.88 2 +192.168.4.87 3 +192.168.4.86 4 +192.168.4.85 0 +192.168.4.84 1 +192.168.4.83 2 +192.168.4.82 3 +192.168.4.81 4 +192.168.4.80 0 +192.168.4.79 0 +192.168.4.78 1 +192.168.4.77 2 +192.168.4.76 3 +192.168.4.75 4 +192.168.4.74 1 +192.168.4.73 2 +192.168.4.72 3 +192.168.4.71 3 +192.168.4.70 4 +192.168.4.69 0 +192.168.4.68 1 +192.168.4.67 2 +192.168.4.66 4 +192.168.4.65 1 +192.168.4.64 3 +192.168.4.63 0 +192.168.4.62 1 +192.168.4.61 2 +192.168.4.60 3 +192.168.4.59 4 +192.168.4.58 0 +192.168.4.57 2 +192.168.4.56 1 +192.168.4.55 0 +192.168.4.54 1 +192.168.4.53 2 +192.168.4.52 3 +192.168.4.51 4 +192.168.4.50 3 +192.168.4.49 4 +192.168.4.48 0 +192.168.4.47 0 +192.168.4.46 1 +192.168.4.45 2 +192.168.4.44 3 +192.168.4.43 4 +192.168.4.42 2 +192.168.4.41 0 +192.168.4.40 1 +192.168.4.39 4 +192.168.4.38 0 +192.168.4.37 1 +192.168.4.36 2 +192.168.4.35 3 +192.168.4.34 4 +192.168.4.33 3 +192.168.4.32 2 +192.168.4.31 0 +192.168.4.30 1 +192.168.4.29 2 +192.168.4.28 3 +192.168.4.27 4 +192.168.4.26 0 +192.168.4.25 2 +192.168.4.24 1 +192.168.4.23 3 +192.168.4.22 4 +192.168.4.21 0 +192.168.4.20 1 +192.168.4.19 2 +192.168.4.18 4 +192.168.4.17 3 +192.168.4.16 1 +192.168.4.15 0 +192.168.4.14 1 +192.168.4.13 2 +192.168.4.12 3 +192.168.4.11 4 +192.168.4.10 3 +192.168.4.9 0 +192.168.4.8 2 +192.168.4.7 2 +192.168.4.6 3 +192.168.4.5 4 +192.168.4.4 0 +192.168.4.3 1 +192.168.4.2 4 +192.168.4.1 4 +192.168.3.90 0 +192.168.3.89 1 +192.168.3.88 2 +192.168.3.87 3 +192.168.3.86 4 +192.168.3.85 0 +192.168.3.84 1 +192.168.3.83 2 +192.168.3.82 3 +192.168.3.81 4 +192.168.3.80 0 +192.168.3.79 0 +192.168.3.78 1 +192.168.3.77 2 +192.168.3.76 3 +192.168.3.75 4 +192.168.3.74 1 +192.168.3.73 2 +192.168.3.72 3 +192.168.3.71 3 +192.168.3.70 4 +192.168.3.69 0 +192.168.3.68 1 +192.168.3.67 2 +192.168.3.66 4 +192.168.3.65 0 +192.168.3.64 3 +192.168.3.63 0 +192.168.3.62 1 +192.168.3.61 2 +192.168.3.60 3 +192.168.3.59 4 +192.168.3.58 2 +192.168.3.57 1 +192.168.3.56 3 +192.168.3.55 0 +192.168.3.54 1 +192.168.3.53 2 +192.168.3.52 3 +192.168.3.51 4 +192.168.3.50 0 +192.168.3.49 4 +192.168.3.48 2 +192.168.3.47 0 +192.168.3.46 1 +192.168.3.45 2 +192.168.3.44 3 +192.168.3.43 4 +192.168.3.42 2 +192.168.3.41 1 +192.168.3.40 0 +192.168.3.39 1 +192.168.3.38 2 +192.168.3.37 3 +192.168.3.36 4 +192.168.3.35 0 +192.168.3.34 4 +192.168.3.33 3 +192.168.3.32 4 +192.168.3.31 0 +192.168.3.30 1 +192.168.3.29 2 +192.168.3.28 3 +192.168.3.27 4 +192.168.3.26 2 +192.168.3.25 1 +192.168.3.24 0 +192.168.3.23 3 +192.168.3.22 4 +192.168.3.21 0 +192.168.3.20 1 +192.168.3.19 2 +192.168.3.18 4 +192.168.3.17 3 +192.168.3.16 1 +192.168.3.15 0 +192.168.3.14 1 +192.168.3.13 2 +192.168.3.12 3 +192.168.3.11 4 +192.168.3.10 2 +192.168.3.9 1 +192.168.3.8 0 +192.168.3.7 4 +192.168.3.6 0 +192.168.3.5 1 +192.168.3.4 2 +192.168.3.3 3 +192.168.3.2 4 +192.168.3.1 3 +192.168.2.90 0 +192.168.2.89 1 +192.168.2.88 2 +192.168.2.87 3 +192.168.2.86 4 +192.168.2.85 0 +192.168.2.84 1 +192.168.2.83 2 +192.168.2.82 3 +192.168.2.81 4 +192.168.2.80 1 +192.168.2.79 0 +192.168.2.78 1 +192.168.2.77 2 +192.168.2.76 3 +192.168.2.75 4 +192.168.2.74 2 +192.168.2.73 3 +192.168.2.72 0 +192.168.2.71 3 +192.168.2.70 4 +192.168.2.69 0 +192.168.2.68 1 +192.168.2.67 2 +192.168.2.66 4 +192.168.2.65 1 +192.168.2.64 3 +192.168.2.63 0 +192.168.2.62 1 +192.168.2.61 2 +192.168.2.60 3 +192.168.2.59 4 +192.168.2.58 0 +192.168.2.57 2 +192.168.2.56 1 +192.168.2.55 0 +192.168.2.54 1 +192.168.2.53 2 +192.168.2.52 3 +192.168.2.51 4 +192.168.2.50 3 +192.168.2.49 4 +192.168.2.48 0 +192.168.2.47 0 +192.168.2.46 1 +192.168.2.45 2 +192.168.2.44 3 +192.168.2.43 4 +192.168.2.42 2 +192.168.2.41 0 +192.168.2.40 1 +192.168.2.39 0 +192.168.2.38 1 +192.168.2.37 2 +192.168.2.36 3 +192.168.2.35 4 +192.168.2.34 3 +192.168.2.33 4 +192.168.2.32 2 +192.168.2.31 0 +192.168.2.30 1 +192.168.2.29 2 +192.168.2.28 3 +192.168.2.27 4 +192.168.2.26 2 +192.168.2.25 0 +192.168.2.24 1 +192.168.2.23 3 +192.168.2.22 4 +192.168.2.21 0 +192.168.2.20 1 +192.168.2.19 2 +192.168.2.18 4 +192.168.2.17 3 +192.168.2.16 4 +192.168.2.15 0 +192.168.2.14 1 +192.168.2.13 2 +192.168.2.12 3 +192.168.2.11 4 +192.168.2.10 0 +192.168.2.9 2 +192.168.2.8 3 +192.168.2.7 2 +192.168.2.6 4 +192.168.2.5 0 +192.168.2.4 1 +192.168.2.3 3 +192.168.2.2 4 +192.168.2.1 1 +192.168.1.90 0 +192.168.1.89 1 +192.168.1.88 2 +192.168.1.87 3 +192.168.1.86 4 +192.168.1.85 0 +192.168.1.84 1 +192.168.1.83 2 +192.168.1.82 3 +192.168.1.81 4 +192.168.1.80 0 +192.168.1.79 0 +192.168.1.78 1 +192.168.1.77 2 +192.168.1.76 3 +192.168.1.75 4 +192.168.1.74 1 +192.168.1.73 2 +192.168.1.72 3 +192.168.1.71 3 +192.168.1.70 4 +192.168.1.69 0 +192.168.1.68 1 +192.168.1.67 2 +192.168.1.66 4 +192.168.1.65 0 +192.168.1.64 1 +192.168.1.63 0 +192.168.1.62 1 +192.168.1.61 2 +192.168.1.60 3 +192.168.1.59 4 +192.168.1.58 2 +192.168.1.57 3 +192.168.1.56 1 +192.168.1.55 0 +192.168.1.54 1 +192.168.1.53 2 +192.168.1.52 3 +192.168.1.51 4 +192.168.1.50 0 +192.168.1.49 4 +192.168.1.48 2 +192.168.1.47 0 +192.168.1.46 1 +192.168.1.45 2 +192.168.1.44 3 +192.168.1.43 4 +192.168.1.42 2 +192.168.1.41 3 +192.168.1.40 0 +192.168.1.39 3 +192.168.1.38 4 +192.168.1.37 0 +192.168.1.36 1 +192.168.1.35 2 +192.168.1.34 4 +192.168.1.33 1 +192.168.1.32 3 +192.168.1.31 0 +192.168.1.30 1 +192.168.1.29 2 +192.168.1.28 3 +192.168.1.27 4 +192.168.1.26 2 +192.168.1.25 3 +192.168.1.24 0 +192.168.1.23 3 +192.168.1.22 4 +192.168.1.21 0 +192.168.1.20 1 +192.168.1.19 2 +192.168.1.18 4 +192.168.1.17 1 +192.168.1.16 4 +192.168.1.15 0 +192.168.1.14 1 +192.168.1.13 2 +192.168.1.12 3 +192.168.1.11 4 +192.168.1.10 2 +192.168.1.9 3 +192.168.1.8 0 +192.168.1.7 3 +192.168.1.6 4 +192.168.1.5 0 +192.168.1.4 1 +192.168.1.3 2 +192.168.1.2 4 +192.168.1.1 1 +EOF + +simple_test 0,0,0,0,0 <<EOF +192.168.10.90 0 +192.168.10.89 1 +192.168.10.88 2 +192.168.10.87 3 +192.168.10.86 4 +192.168.10.85 0 +192.168.10.84 1 +192.168.10.83 2 +192.168.10.82 3 +192.168.10.81 4 +192.168.10.80 0 +192.168.10.79 0 +192.168.10.78 1 +192.168.10.77 2 +192.168.10.76 3 +192.168.10.75 4 +192.168.10.74 1 +192.168.10.73 2 +192.168.10.72 3 +192.168.10.71 3 +192.168.10.70 4 +192.168.10.69 0 +192.168.10.68 1 +192.168.10.67 2 +192.168.10.66 4 +192.168.10.65 0 +192.168.10.64 1 +192.168.10.63 0 +192.168.10.62 1 +192.168.10.61 2 +192.168.10.60 3 +192.168.10.59 4 +192.168.10.58 2 +192.168.10.57 3 +192.168.10.56 0 +192.168.10.55 0 +192.168.10.54 1 +192.168.10.53 2 +192.168.10.52 3 +192.168.10.51 4 +192.168.10.50 1 +192.168.10.49 4 +192.168.10.48 2 +192.168.10.47 0 +192.168.10.46 1 +192.168.10.45 2 +192.168.10.44 3 +192.168.10.43 4 +192.168.10.42 2 +192.168.10.41 3 +192.168.10.40 1 +192.168.10.39 3 +192.168.10.38 4 +192.168.10.37 0 +192.168.10.36 1 +192.168.10.35 2 +192.168.10.34 4 +192.168.10.33 0 +192.168.10.32 3 +192.168.10.31 0 +192.168.10.30 1 +192.168.10.29 2 +192.168.10.28 3 +192.168.10.27 4 +192.168.10.26 3 +192.168.10.25 2 +192.168.10.24 0 +192.168.10.23 3 +192.168.10.22 4 +192.168.10.21 0 +192.168.10.20 1 +192.168.10.19 2 +192.168.10.18 4 +192.168.10.17 1 +192.168.10.16 4 +192.168.10.15 0 +192.168.10.14 1 +192.168.10.13 2 +192.168.10.12 3 +192.168.10.11 4 +192.168.10.10 2 +192.168.10.9 3 +192.168.10.8 4 +192.168.10.7 0 +192.168.10.6 1 +192.168.10.5 2 +192.168.10.4 3 +192.168.10.3 4 +192.168.10.2 0 +192.168.10.1 1 +192.168.9.90 0 +192.168.9.89 1 +192.168.9.88 2 +192.168.9.87 3 +192.168.9.86 4 +192.168.9.85 0 +192.168.9.84 1 +192.168.9.83 2 +192.168.9.82 3 +192.168.9.81 4 +192.168.9.80 0 +192.168.9.79 0 +192.168.9.78 1 +192.168.9.77 2 +192.168.9.76 3 +192.168.9.75 4 +192.168.9.74 1 +192.168.9.73 2 +192.168.9.72 3 +192.168.9.71 3 +192.168.9.70 4 +192.168.9.69 0 +192.168.9.68 1 +192.168.9.67 2 +192.168.9.66 4 +192.168.9.65 0 +192.168.9.64 1 +192.168.9.63 0 +192.168.9.62 1 +192.168.9.61 2 +192.168.9.60 3 +192.168.9.59 4 +192.168.9.58 2 +192.168.9.57 3 +192.168.9.56 4 +192.168.9.55 0 +192.168.9.54 1 +192.168.9.53 2 +192.168.9.52 3 +192.168.9.51 4 +192.168.9.50 0 +192.168.9.49 1 +192.168.9.48 2 +192.168.9.47 0 +192.168.9.46 1 +192.168.9.45 2 +192.168.9.44 3 +192.168.9.43 4 +192.168.9.42 2 +192.168.9.41 4 +192.168.9.40 3 +192.168.9.39 0 +192.168.9.38 1 +192.168.9.37 2 +192.168.9.36 3 +192.168.9.35 4 +192.168.9.34 0 +192.168.9.33 1 +192.168.9.32 4 +192.168.9.31 0 +192.168.9.30 1 +192.168.9.29 2 +192.168.9.28 3 +192.168.9.27 4 +192.168.9.26 2 +192.168.9.25 3 +192.168.9.24 0 +192.168.9.23 3 +192.168.9.22 4 +192.168.9.21 0 +192.168.9.20 1 +192.168.9.19 2 +192.168.9.18 4 +192.168.9.17 1 +192.168.9.16 3 +192.168.9.15 0 +192.168.9.14 1 +192.168.9.13 2 +192.168.9.12 3 +192.168.9.11 4 +192.168.9.10 2 +192.168.9.9 4 +192.168.9.8 3 +192.168.9.7 0 +192.168.9.6 1 +192.168.9.5 2 +192.168.9.4 3 +192.168.9.3 4 +192.168.9.2 0 +192.168.9.1 1 +192.168.8.90 0 +192.168.8.89 1 +192.168.8.88 2 +192.168.8.87 3 +192.168.8.86 4 +192.168.8.85 0 +192.168.8.84 1 +192.168.8.83 2 +192.168.8.82 3 +192.168.8.81 4 +192.168.8.80 0 +192.168.8.79 0 +192.168.8.78 1 +192.168.8.77 2 +192.168.8.76 3 +192.168.8.75 4 +192.168.8.74 1 +192.168.8.73 2 +192.168.8.72 3 +192.168.8.71 3 +192.168.8.70 4 +192.168.8.69 0 +192.168.8.68 1 +192.168.8.67 2 +192.168.8.66 4 +192.168.8.65 3 +192.168.8.64 0 +192.168.8.63 0 +192.168.8.62 1 +192.168.8.61 2 +192.168.8.60 3 +192.168.8.59 4 +192.168.8.58 1 +192.168.8.57 2 +192.168.8.56 3 +192.168.8.55 0 +192.168.8.54 1 +192.168.8.53 2 +192.168.8.52 3 +192.168.8.51 4 +192.168.8.50 0 +192.168.8.49 4 +192.168.8.48 1 +192.168.8.47 0 +192.168.8.46 1 +192.168.8.45 2 +192.168.8.44 3 +192.168.8.43 4 +192.168.8.42 2 +192.168.8.41 1 +192.168.8.40 4 +192.168.8.39 0 +192.168.8.38 1 +192.168.8.37 2 +192.168.8.36 3 +192.168.8.35 4 +192.168.8.34 3 +192.168.8.33 0 +192.168.8.32 2 +192.168.8.31 0 +192.168.8.30 1 +192.168.8.29 2 +192.168.8.28 3 +192.168.8.27 4 +192.168.8.26 2 +192.168.8.25 1 +192.168.8.24 3 +192.168.8.23 3 +192.168.8.22 4 +192.168.8.21 0 +192.168.8.20 1 +192.168.8.19 2 +192.168.8.18 4 +192.168.8.17 0 +192.168.8.16 4 +192.168.8.15 0 +192.168.8.14 1 +192.168.8.13 2 +192.168.8.12 3 +192.168.8.11 4 +192.168.8.10 1 +192.168.8.9 2 +192.168.8.8 4 +192.168.8.7 0 +192.168.8.6 1 +192.168.8.5 2 +192.168.8.4 3 +192.168.8.3 4 +192.168.8.2 3 +192.168.8.1 0 +192.168.7.90 0 +192.168.7.89 1 +192.168.7.88 2 +192.168.7.87 3 +192.168.7.86 4 +192.168.7.85 0 +192.168.7.84 1 +192.168.7.83 2 +192.168.7.82 3 +192.168.7.81 4 +192.168.7.80 1 +192.168.7.79 0 +192.168.7.78 1 +192.168.7.77 2 +192.168.7.76 3 +192.168.7.75 4 +192.168.7.74 2 +192.168.7.73 3 +192.168.7.72 0 +192.168.7.71 3 +192.168.7.70 4 +192.168.7.69 0 +192.168.7.68 1 +192.168.7.67 2 +192.168.7.66 4 +192.168.7.65 1 +192.168.7.64 3 +192.168.7.63 0 +192.168.7.62 1 +192.168.7.61 2 +192.168.7.60 3 +192.168.7.59 4 +192.168.7.58 2 +192.168.7.57 0 +192.168.7.56 1 +192.168.7.55 0 +192.168.7.54 1 +192.168.7.53 2 +192.168.7.52 3 +192.168.7.51 4 +192.168.7.50 3 +192.168.7.49 4 +192.168.7.48 2 +192.168.7.47 0 +192.168.7.46 1 +192.168.7.45 2 +192.168.7.44 3 +192.168.7.43 4 +192.168.7.42 2 +192.168.7.41 0 +192.168.7.40 1 +192.168.7.39 4 +192.168.7.38 0 +192.168.7.37 1 +192.168.7.36 2 +192.168.7.35 3 +192.168.7.34 4 +192.168.7.33 3 +192.168.7.32 0 +192.168.7.31 0 +192.168.7.30 1 +192.168.7.29 2 +192.168.7.28 3 +192.168.7.27 4 +192.168.7.26 2 +192.168.7.25 0 +192.168.7.24 1 +192.168.7.23 3 +192.168.7.22 4 +192.168.7.21 0 +192.168.7.20 1 +192.168.7.19 2 +192.168.7.18 4 +192.168.7.17 3 +192.168.7.16 4 +192.168.7.15 0 +192.168.7.14 1 +192.168.7.13 2 +192.168.7.12 3 +192.168.7.11 4 +192.168.7.10 3 +192.168.7.9 2 +192.168.7.8 0 +192.168.7.7 2 +192.168.7.6 4 +192.168.7.5 0 +192.168.7.4 1 +192.168.7.3 3 +192.168.7.2 4 +192.168.7.1 1 +192.168.6.90 0 +192.168.6.89 1 +192.168.6.88 2 +192.168.6.87 3 +192.168.6.86 4 +192.168.6.85 0 +192.168.6.84 1 +192.168.6.83 2 +192.168.6.82 4 +192.168.6.81 3 +192.168.6.80 0 +192.168.6.79 0 +192.168.6.78 1 +192.168.6.77 2 +192.168.6.76 3 +192.168.6.75 4 +192.168.6.74 2 +192.168.6.73 3 +192.168.6.72 1 +192.168.6.71 3 +192.168.6.70 4 +192.168.6.69 0 +192.168.6.68 1 +192.168.6.67 2 +192.168.6.66 4 +192.168.6.65 0 +192.168.6.64 1 +192.168.6.63 0 +192.168.6.62 1 +192.168.6.61 2 +192.168.6.60 3 +192.168.6.59 4 +192.168.6.58 2 +192.168.6.57 3 +192.168.6.56 0 +192.168.6.55 3 +192.168.6.54 4 +192.168.6.53 1 +192.168.6.52 2 +192.168.6.51 0 +192.168.6.50 4 +192.168.6.49 1 +192.168.6.48 2 +192.168.6.47 0 +192.168.6.46 1 +192.168.6.45 2 +192.168.6.44 3 +192.168.6.43 4 +192.168.6.42 2 +192.168.6.41 4 +192.168.6.40 3 +192.168.6.39 0 +192.168.6.38 1 +192.168.6.37 2 +192.168.6.36 3 +192.168.6.35 4 +192.168.6.34 0 +192.168.6.33 1 +192.168.6.32 4 +192.168.6.31 0 +192.168.6.30 1 +192.168.6.29 2 +192.168.6.28 3 +192.168.6.27 4 +192.168.6.26 2 +192.168.6.25 3 +192.168.6.24 0 +192.168.6.23 3 +192.168.6.22 4 +192.168.6.21 0 +192.168.6.20 1 +192.168.6.19 2 +192.168.6.18 4 +192.168.6.17 1 +192.168.6.16 3 +192.168.6.15 0 +192.168.6.14 1 +192.168.6.13 2 +192.168.6.12 3 +192.168.6.11 4 +192.168.6.10 2 +192.168.6.9 3 +192.168.6.8 4 +192.168.6.7 0 +192.168.6.6 1 +192.168.6.5 2 +192.168.6.4 3 +192.168.6.3 4 +192.168.6.2 0 +192.168.6.1 1 +192.168.5.90 0 +192.168.5.89 1 +192.168.5.88 2 +192.168.5.87 3 +192.168.5.86 4 +192.168.5.85 0 +192.168.5.84 1 +192.168.5.83 2 +192.168.5.82 4 +192.168.5.81 3 +192.168.5.80 0 +192.168.5.79 0 +192.168.5.78 1 +192.168.5.77 2 +192.168.5.76 3 +192.168.5.75 4 +192.168.5.74 2 +192.168.5.73 3 +192.168.5.72 1 +192.168.5.71 3 +192.168.5.70 4 +192.168.5.69 2 +192.168.5.68 0 +192.168.5.67 1 +192.168.5.66 4 +192.168.5.65 2 +192.168.5.64 0 +192.168.5.63 0 +192.168.5.62 1 +192.168.5.61 2 +192.168.5.60 3 +192.168.5.59 4 +192.168.5.58 1 +192.168.5.57 3 +192.168.5.56 2 +192.168.5.55 0 +192.168.5.54 1 +192.168.5.53 2 +192.168.5.52 3 +192.168.5.51 4 +192.168.5.50 0 +192.168.5.49 4 +192.168.5.48 1 +192.168.5.47 0 +192.168.5.46 1 +192.168.5.45 2 +192.168.5.44 3 +192.168.5.43 4 +192.168.5.42 1 +192.168.5.41 3 +192.168.5.40 2 +192.168.5.39 2 +192.168.5.38 3 +192.168.5.37 4 +192.168.5.36 0 +192.168.5.35 1 +192.168.5.34 4 +192.168.5.33 0 +192.168.5.32 4 +192.168.5.31 0 +192.168.5.30 1 +192.168.5.29 2 +192.168.5.28 3 +192.168.5.27 4 +192.168.5.26 1 +192.168.5.25 3 +192.168.5.24 2 +192.168.5.23 3 +192.168.5.22 4 +192.168.5.21 2 +192.168.5.20 0 +192.168.5.19 1 +192.168.5.18 4 +192.168.5.17 0 +192.168.5.16 3 +192.168.5.15 0 +192.168.5.14 1 +192.168.5.13 2 +192.168.5.12 3 +192.168.5.11 4 +192.168.5.10 1 +192.168.5.9 4 +192.168.5.8 3 +192.168.5.7 0 +192.168.5.6 1 +192.168.5.5 2 +192.168.5.4 3 +192.168.5.3 4 +192.168.5.2 2 +192.168.5.1 0 +192.168.4.90 0 +192.168.4.89 1 +192.168.4.88 2 +192.168.4.87 3 +192.168.4.86 4 +192.168.4.85 0 +192.168.4.84 1 +192.168.4.83 2 +192.168.4.82 3 +192.168.4.81 4 +192.168.4.80 0 +192.168.4.79 0 +192.168.4.78 1 +192.168.4.77 2 +192.168.4.76 3 +192.168.4.75 4 +192.168.4.74 1 +192.168.4.73 2 +192.168.4.72 3 +192.168.4.71 3 +192.168.4.70 4 +192.168.4.69 0 +192.168.4.68 1 +192.168.4.67 2 +192.168.4.66 4 +192.168.4.65 1 +192.168.4.64 3 +192.168.4.63 0 +192.168.4.62 1 +192.168.4.61 2 +192.168.4.60 3 +192.168.4.59 4 +192.168.4.58 0 +192.168.4.57 2 +192.168.4.56 1 +192.168.4.55 0 +192.168.4.54 1 +192.168.4.53 2 +192.168.4.52 3 +192.168.4.51 4 +192.168.4.50 3 +192.168.4.49 4 +192.168.4.48 0 +192.168.4.47 0 +192.168.4.46 1 +192.168.4.45 2 +192.168.4.44 3 +192.168.4.43 4 +192.168.4.42 2 +192.168.4.41 0 +192.168.4.40 1 +192.168.4.39 4 +192.168.4.38 0 +192.168.4.37 1 +192.168.4.36 2 +192.168.4.35 3 +192.168.4.34 4 +192.168.4.33 3 +192.168.4.32 2 +192.168.4.31 0 +192.168.4.30 1 +192.168.4.29 2 +192.168.4.28 3 +192.168.4.27 4 +192.168.4.26 0 +192.168.4.25 2 +192.168.4.24 1 +192.168.4.23 3 +192.168.4.22 4 +192.168.4.21 0 +192.168.4.20 1 +192.168.4.19 2 +192.168.4.18 4 +192.168.4.17 3 +192.168.4.16 1 +192.168.4.15 0 +192.168.4.14 1 +192.168.4.13 2 +192.168.4.12 3 +192.168.4.11 4 +192.168.4.10 3 +192.168.4.9 0 +192.168.4.8 2 +192.168.4.7 2 +192.168.4.6 3 +192.168.4.5 4 +192.168.4.4 0 +192.168.4.3 1 +192.168.4.2 4 +192.168.4.1 4 +192.168.3.90 0 +192.168.3.89 1 +192.168.3.88 2 +192.168.3.87 3 +192.168.3.86 4 +192.168.3.85 0 +192.168.3.84 1 +192.168.3.83 2 +192.168.3.82 3 +192.168.3.81 4 +192.168.3.80 0 +192.168.3.79 0 +192.168.3.78 1 +192.168.3.77 2 +192.168.3.76 3 +192.168.3.75 4 +192.168.3.74 1 +192.168.3.73 2 +192.168.3.72 3 +192.168.3.71 3 +192.168.3.70 4 +192.168.3.69 0 +192.168.3.68 1 +192.168.3.67 2 +192.168.3.66 4 +192.168.3.65 0 +192.168.3.64 3 +192.168.3.63 0 +192.168.3.62 1 +192.168.3.61 2 +192.168.3.60 3 +192.168.3.59 4 +192.168.3.58 2 +192.168.3.57 1 +192.168.3.56 3 +192.168.3.55 0 +192.168.3.54 1 +192.168.3.53 2 +192.168.3.52 3 +192.168.3.51 4 +192.168.3.50 0 +192.168.3.49 4 +192.168.3.48 2 +192.168.3.47 0 +192.168.3.46 1 +192.168.3.45 2 +192.168.3.44 3 +192.168.3.43 4 +192.168.3.42 2 +192.168.3.41 1 +192.168.3.40 0 +192.168.3.39 1 +192.168.3.38 2 +192.168.3.37 3 +192.168.3.36 4 +192.168.3.35 0 +192.168.3.34 4 +192.168.3.33 3 +192.168.3.32 4 +192.168.3.31 0 +192.168.3.30 1 +192.168.3.29 2 +192.168.3.28 3 +192.168.3.27 4 +192.168.3.26 2 +192.168.3.25 1 +192.168.3.24 0 +192.168.3.23 3 +192.168.3.22 4 +192.168.3.21 0 +192.168.3.20 1 +192.168.3.19 2 +192.168.3.18 4 +192.168.3.17 3 +192.168.3.16 1 +192.168.3.15 0 +192.168.3.14 1 +192.168.3.13 2 +192.168.3.12 3 +192.168.3.11 4 +192.168.3.10 2 +192.168.3.9 1 +192.168.3.8 0 +192.168.3.7 4 +192.168.3.6 0 +192.168.3.5 1 +192.168.3.4 2 +192.168.3.3 3 +192.168.3.2 4 +192.168.3.1 3 +192.168.2.90 0 +192.168.2.89 1 +192.168.2.88 2 +192.168.2.87 3 +192.168.2.86 4 +192.168.2.85 0 +192.168.2.84 1 +192.168.2.83 2 +192.168.2.82 3 +192.168.2.81 4 +192.168.2.80 1 +192.168.2.79 0 +192.168.2.78 1 +192.168.2.77 2 +192.168.2.76 3 +192.168.2.75 4 +192.168.2.74 2 +192.168.2.73 3 +192.168.2.72 0 +192.168.2.71 3 +192.168.2.70 4 +192.168.2.69 0 +192.168.2.68 1 +192.168.2.67 2 +192.168.2.66 4 +192.168.2.65 1 +192.168.2.64 3 +192.168.2.63 0 +192.168.2.62 1 +192.168.2.61 2 +192.168.2.60 3 +192.168.2.59 4 +192.168.2.58 0 +192.168.2.57 2 +192.168.2.56 1 +192.168.2.55 0 +192.168.2.54 1 +192.168.2.53 2 +192.168.2.52 3 +192.168.2.51 4 +192.168.2.50 3 +192.168.2.49 4 +192.168.2.48 0 +192.168.2.47 0 +192.168.2.46 1 +192.168.2.45 2 +192.168.2.44 3 +192.168.2.43 4 +192.168.2.42 2 +192.168.2.41 0 +192.168.2.40 1 +192.168.2.39 0 +192.168.2.38 1 +192.168.2.37 2 +192.168.2.36 3 +192.168.2.35 4 +192.168.2.34 3 +192.168.2.33 4 +192.168.2.32 2 +192.168.2.31 0 +192.168.2.30 1 +192.168.2.29 2 +192.168.2.28 3 +192.168.2.27 4 +192.168.2.26 2 +192.168.2.25 0 +192.168.2.24 1 +192.168.2.23 3 +192.168.2.22 4 +192.168.2.21 0 +192.168.2.20 1 +192.168.2.19 2 +192.168.2.18 4 +192.168.2.17 3 +192.168.2.16 4 +192.168.2.15 0 +192.168.2.14 1 +192.168.2.13 2 +192.168.2.12 3 +192.168.2.11 4 +192.168.2.10 0 +192.168.2.9 2 +192.168.2.8 3 +192.168.2.7 2 +192.168.2.6 4 +192.168.2.5 0 +192.168.2.4 1 +192.168.2.3 3 +192.168.2.2 4 +192.168.2.1 1 +192.168.1.90 0 +192.168.1.89 1 +192.168.1.88 2 +192.168.1.87 3 +192.168.1.86 4 +192.168.1.85 0 +192.168.1.84 1 +192.168.1.83 2 +192.168.1.82 3 +192.168.1.81 4 +192.168.1.80 0 +192.168.1.79 0 +192.168.1.78 1 +192.168.1.77 2 +192.168.1.76 3 +192.168.1.75 4 +192.168.1.74 1 +192.168.1.73 2 +192.168.1.72 3 +192.168.1.71 3 +192.168.1.70 4 +192.168.1.69 0 +192.168.1.68 1 +192.168.1.67 2 +192.168.1.66 4 +192.168.1.65 0 +192.168.1.64 1 +192.168.1.63 0 +192.168.1.62 1 +192.168.1.61 2 +192.168.1.60 3 +192.168.1.59 4 +192.168.1.58 2 +192.168.1.57 3 +192.168.1.56 1 +192.168.1.55 0 +192.168.1.54 1 +192.168.1.53 2 +192.168.1.52 3 +192.168.1.51 4 +192.168.1.50 0 +192.168.1.49 4 +192.168.1.48 2 +192.168.1.47 0 +192.168.1.46 1 +192.168.1.45 2 +192.168.1.44 3 +192.168.1.43 4 +192.168.1.42 2 +192.168.1.41 3 +192.168.1.40 0 +192.168.1.39 3 +192.168.1.38 4 +192.168.1.37 0 +192.168.1.36 1 +192.168.1.35 2 +192.168.1.34 4 +192.168.1.33 1 +192.168.1.32 3 +192.168.1.31 0 +192.168.1.30 1 +192.168.1.29 2 +192.168.1.28 3 +192.168.1.27 4 +192.168.1.26 2 +192.168.1.25 3 +192.168.1.24 0 +192.168.1.23 3 +192.168.1.22 4 +192.168.1.21 0 +192.168.1.20 1 +192.168.1.19 2 +192.168.1.18 4 +192.168.1.17 1 +192.168.1.16 4 +192.168.1.15 0 +192.168.1.14 1 +192.168.1.13 2 +192.168.1.12 3 +192.168.1.11 4 +192.168.1.10 2 +192.168.1.9 3 +192.168.1.8 0 +192.168.1.7 3 +192.168.1.6 4 +192.168.1.5 0 +192.168.1.4 1 +192.168.1.3 2 +192.168.1.2 4 +192.168.1.1 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/nondet.001.sh b/ctdb/tests/UNIT/takeover/nondet.001.sh new file mode 100755 index 0000000..5f838ee --- /dev/null +++ b/ctdb/tests/UNIT/takeover/nondet.001.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 healthy" + +required_result <<EOF +${TEST_DATE_STAMP}Unassign IP: 192.168.21.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.21.252 from 0 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.252 from 0 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.250 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.249 from 0 +192.168.21.254 2 +192.168.21.253 2 +192.168.21.252 2 +192.168.20.254 2 +192.168.20.253 2 +192.168.20.252 2 +192.168.20.251 2 +192.168.20.250 2 +192.168.20.249 2 +EOF + +simple_test 2,2,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/nondet.002.sh b/ctdb/tests/UNIT/takeover/nondet.002.sh new file mode 100755 index 0000000..bc80f5c --- /dev/null +++ b/ctdb/tests/UNIT/takeover/nondet.002.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 2 healthy" + +required_result <<EOF +${TEST_DATE_STAMP}Unassign IP: 192.168.21.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.253 from 1 +${TEST_DATE_STAMP}Unassign IP: 192.168.20.250 from 1 +192.168.21.254 2 +192.168.21.253 0 +192.168.21.252 0 +192.168.20.254 2 +192.168.20.253 2 +192.168.20.252 0 +192.168.20.251 2 +192.168.20.250 0 +192.168.20.249 0 +EOF + +simple_test 0,2,0 <<EOF +192.168.20.249 0 +192.168.20.250 1 +192.168.20.251 2 +192.168.20.252 0 +192.168.20.253 1 +192.168.20.254 2 +192.168.21.252 0 +192.168.21.253 1 +192.168.21.254 2 +EOF diff --git a/ctdb/tests/UNIT/takeover/nondet.003.sh b/ctdb/tests/UNIT/takeover/nondet.003.sh new file mode 100755 index 0000000..2a9dfb4 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/nondet.003.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 -> all healthy" + +required_result <<EOF +192.168.21.254 0 +192.168.21.253 2 +192.168.21.252 0 +192.168.20.254 2 +192.168.20.253 0 +192.168.20.252 2 +192.168.20.251 1 +192.168.20.250 1 +192.168.20.249 1 +EOF + +simple_test 0,0,0 <<EOF +192.168.20.249 1 +192.168.20.250 1 +192.168.20.251 1 +192.168.20.252 1 +192.168.20.253 1 +192.168.20.254 1 +192.168.21.252 1 +192.168.21.253 1 +192.168.21.254 1 +EOF diff --git a/ctdb/tests/UNIT/takeover/scripts/local.sh b/ctdb/tests/UNIT/takeover/scripts/local.sh new file mode 100644 index 0000000..0db3d90 --- /dev/null +++ b/ctdb/tests/UNIT/takeover/scripts/local.sh @@ -0,0 +1,30 @@ +# Hey Emacs, this is a -*- shell-script -*- !!! :-) + +test_prog="ctdb_takeover_tests ipalloc" + +define_test () +{ + _f=$(basename "$0" ".sh") + + export CTDB_IP_ALGORITHM="${_f%%.*}" + case "$CTDB_IP_ALGORITHM" in + lcp2|nondet|det) : ;; + *) die "Unknown algorithm for testcase \"$_f\"" ;; + esac + + printf "%-12s - %s\n" "$_f" "$1" +} + +extra_footer () +{ + cat <<EOF +-------------------------------------------------- +Algorithm: $CTDB_IP_ALGORITHM +-------------------------------------------------- +EOF +} + +simple_test () +{ + unit_test $VALGRIND $test_prog "$@" +} diff --git a/ctdb/tests/UNIT/takeover_helper/000.sh b/ctdb/tests/UNIT/takeover_helper/000.sh new file mode 100755 index 0000000..3cb9635 --- /dev/null +++ b/ctdb/tests/UNIT/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 <<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 0 <<EOF +No nodes available to host public IPs yet +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/010.sh b/ctdb/tests/UNIT/takeover_helper/010.sh new file mode 100755 index 0000000..1275156 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/010.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/011.sh b/ctdb/tests/UNIT/takeover_helper/011.sh new file mode 100755 index 0000000..12a2a1a --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/011.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 ok, IPs all unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x2 CURRENT RECMASTER +1 192.168.20.42 0x2 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 2 +10.0.0.33 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/012.sh b/ctdb/tests/UNIT/takeover_helper/012.sh new file mode 100755 index 0000000..04e4508 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/012.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, 1 IP unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 2 +10.0.0.33 1 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 2 +10.0.0.33 1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/013.sh b/ctdb/tests/UNIT/takeover_helper/013.sh new file mode 100755 index 0000000..ad55564 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/013.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 unhealthy, IPs all assigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x2 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 2 +10.0.0.33 1 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 0 +10.0.0.33 1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/014.sh b/ctdb/tests/UNIT/takeover_helper/014.sh new file mode 100755 index 0000000..e3d8515 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/014.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all unhealthy, all IPs assigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x2 CURRENT RECMASTER +1 192.168.20.42 0x2 +2 192.168.20.43 0x2 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 2 +10.0.0.33 1 +EOF + +ok <<EOF +Failed to find node to cover ip 10.0.0.33 +Failed to find node to cover ip 10.0.0.32 +Failed to find node to cover ip 10.0.0.31 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/016.sh b/ctdb/tests/UNIT/takeover_helper/016.sh new file mode 100755 index 0000000..7fbed7e --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/016.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs all unassigned, IP failover disabled" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF + +export CTDB_DISABLE_IP_FAILOVER=1 + +ok <<EOF +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/017.sh b/ctdb/tests/UNIT/takeover_helper/017.sh new file mode 100755 index 0000000..e5bcd20 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/017.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs unbalanced, NoIPFailback" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 1 +EOF + +ctdb_cmd setvar NoIPFailback 1 + +ok <<EOF +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/018.sh b/ctdb/tests/UNIT/takeover_helper/018.sh new file mode 100755 index 0000000..61a26dd --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/018.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs unbalanced" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 1 +EOF + +ok <<EOF +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/019.sh b/ctdb/tests/UNIT/takeover_helper/019.sh new file mode 100755 index 0000000..0802611 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/019.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 1 node unhealthy, IPs all assigned, NoIPTakeover" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x2 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +EOF + +ctdb_cmd setvar NoIPTakeover 1 + +ok <<EOF +Failed to find node to cover ip 10.0.0.32 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 -1 +10.0.0.33 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/021.sh b/ctdb/tests/UNIT/takeover_helper/021.sh new file mode 100755 index 0000000..ad8e59f --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/021.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs all assigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 -1 +EOF + +ctdb_cmd setvar NoIPTakeover 1 + +ok <<EOF +Failed to find node to cover ip 10.0.0.34 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 -1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/022.sh b/ctdb/tests/UNIT/takeover_helper/022.sh new file mode 100755 index 0000000..e8c5a96 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/022.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs very unbalanced, no force rebalance" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 2 +10.0.0.36 2 +EOF + +ok <<EOF +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 2 +10.0.0.36 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/023.sh b/ctdb/tests/UNIT/takeover_helper/023.sh new file mode 100755 index 0000000..a76afef --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/023.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs very unbalanced, force rebalance 1" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 2 +10.0.0.36 2 +EOF + +ok <<EOF +Forcing rebalancing of IPs to node 1 +EOF +test_takeover_helper 1 + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 1 +10.0.0.36 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/024.sh b/ctdb/tests/UNIT/takeover_helper/024.sh new file mode 100755 index 0000000..af7480c --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/024.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all healthy, IPs very unbalanced, force rebalance all" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 2 +10.0.0.36 2 +EOF + +ok <<EOF +Forcing rebalancing of IPs to node 1 +Forcing rebalancing of IPs to node 0 +Forcing rebalancing of IPs to node 2 +EOF +test_takeover_helper 1,0,2 + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 0 +10.0.0.36 1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/025.sh b/ctdb/tests/UNIT/takeover_helper/025.sh new file mode 100755 index 0000000..28db486 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/025.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all assigned randomly, deterministic IPs" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 0 +10.0.0.33 2 +EOF + +ctdb_cmd setvar IPAllocAlgorithm 0 + +ok <<EOF +Deterministic IPs enabled. Resetting all ip allocations +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/026.sh b/ctdb/tests/UNIT/takeover_helper/026.sh new file mode 100755 index 0000000..08a7b6d --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/026.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs assigned, unbalanced, non-deterministic IPs" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 2 +EOF + +ctdb_cmd setvar IPAllocAlgorithm 1 + +ok_null +test_takeover_helper + +# This is non-deterministic - LCP2 would not rebalance without +# force-rebalance-nodes +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +10.0.0.34 2 +10.0.0.35 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/027.sh b/ctdb/tests/UNIT/takeover_helper/027.sh new file mode 100755 index 0000000..1c36d87 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/027.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 2 banned, IPs all unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x8 +2 192.168.20.43 0x8 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 0 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/028.sh b/ctdb/tests/UNIT/takeover_helper/028.sh new file mode 100755 index 0000000..a69cd47 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/028.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, 2 banned, IPs all unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x1 +2 192.168.20.43 0x1 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 0 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/030.sh b/ctdb/tests/UNIT/takeover_helper/030.sh new file mode 100755 index 0000000..e6411c5 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/030.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs defined on 2, IPs all unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 0,2 +10.0.0.32 -1 0,2 +10.0.0.33 -1 0,2 +10.0.0.34 -1 0,2 +EOF + +ok_null +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 2 +10.0.0.33 2 +10.0.0.34 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/031.sh b/ctdb/tests/UNIT/takeover_helper/031.sh new file mode 100755 index 0000000..13005ee --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/031.sh @@ -0,0 +1,55 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs defined on 2, IPs all unassigned" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 0,2 +10.0.0.32 -1 0,2 +10.0.0.33 -1 0,2 +10.0.0.34 -1 0,2 +EOF + +HELPER_DEBUGLEVEL=INFO +ok <<EOF +Fetched public IPs from node 0 +Fetched public IPs from node 1 +Fetched public IPs from node 2 +Fetched public IPs from node 0 +Fetched public IPs from node 2 + 10.0.0.34 -> 0 [+0] + 10.0.0.33 -> 2 [+0] + 10.0.0.31 -> 0 [+14884] + 10.0.0.32 -> 2 [+16129] +RELEASE_IP 10.0.0.34 succeeded on 1 nodes +RELEASE_IP 10.0.0.33 succeeded on 1 nodes +RELEASE_IP 10.0.0.32 succeeded on 1 nodes +RELEASE_IP 10.0.0.31 succeeded on 1 nodes +TAKEOVER_IP 10.0.0.34 succeeded on node 0 +TAKEOVER_IP 10.0.0.33 succeeded on node 2 +TAKEOVER_IP 10.0.0.32 succeeded on node 2 +TAKEOVER_IP 10.0.0.31 succeeded on node 0 +IPREALLOCATED succeeded on 3 nodes +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 2 +10.0.0.33 2 +10.0.0.34 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/110.sh b/ctdb/tests/UNIT/takeover_helper/110.sh new file mode 100755 index 0000000..56dc16c --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/110.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, no IPs, IPREALLOCATED error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +CONTROLFAILS +137 1 ERROR CTDB_CONTROL_IPREALLOCATED fake failure + +EOF + +required_result 255 <<EOF +No nodes available to host public IPs yet +IPREALLOCATED failed on node 1, ret=-1 +Assigning banning credits to node 1 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/111.sh b/ctdb/tests/UNIT/takeover_helper/111.sh new file mode 100755 index 0000000..d14868b --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/111.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned, IPREALLOCATED error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 + +CONTROLFAILS +137 1 ERROR CTDB_CONTROL_IPREALLOCATED fake failure +EOF + +required_result 255 <<EOF +IPREALLOCATED failed on node 1, ret=-1 +Assigning banning credits to node 1 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/120.sh b/ctdb/tests/UNIT/takeover_helper/120.sh new file mode 100755 index 0000000..af780d6 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/120.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned, TAKEOVER_IP error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 + +CONTROLFAILS +89 1 ERROR CTDB_CONTROL_TAKEOVER_IP fake failure +EOF + +required_result 255 <<EOF +TAKEOVER_IP 10.0.0.32 failed on node 1, ret=-1 +Assigning banning credits to node 1 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 -1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/121.sh b/ctdb/tests/UNIT/takeover_helper/121.sh new file mode 100755 index 0000000..cc113da --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/121.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, 2/3 IPs assigned, TAKEOVER_IP error (redundant)" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 -1 + +CONTROLFAILS +89 1 ERROR CTDB_CONTROL_TAKEOVER_IP fake failure +EOF + +required_result 255 <<EOF +TAKEOVER_IP 10.0.0.32 failed on node 1, ret=-1 +Assigning banning credits to node 1 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/122.sh b/ctdb/tests/UNIT/takeover_helper/122.sh new file mode 100755 index 0000000..d823b09 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/122.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, 2/3 IPs assigned, TAKEOVER_IP error (target)" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 -1 + +CONTROLFAILS +89 0 ERROR CTDB_CONTROL_TAKEOVER_IP fake failure +EOF + +required_result 255 <<EOF +TAKEOVER_IP 10.0.0.33 failed on node 0, ret=-1 +Assigning banning credits to node 0 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 -1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/130.sh b/ctdb/tests/UNIT/takeover_helper/130.sh new file mode 100755 index 0000000..83735d4 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/130.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned, RELEASE_IP error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 + +CONTROLFAILS +88 2 ERROR CTDB_CONTROL_RELEASE_IP fake failure +EOF + +required_result 255 <<EOF +RELEASE_IP 10.0.0.33 failed on node 2, ret=-1 +RELEASE_IP 10.0.0.32 failed on node 2, ret=-1 +Assigning banning credits to node 2 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/131.sh b/ctdb/tests/UNIT/takeover_helper/131.sh new file mode 100755 index 0000000..4e0cd46 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/131.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, all IPs assigned, RELEASE_IP error (redundant)" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x2 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 + +CONTROLFAILS +88 0 ERROR CTDB_CONTROL_RELEASE_IP fake failure +EOF + +required_result 255 <<EOF +RELEASE_IP 10.0.0.33 failed on node 0, ret=-1 +Assigning banning credits to node 0 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 -1 +10.0.0.33 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/132.sh b/ctdb/tests/UNIT/takeover_helper/132.sh new file mode 100755 index 0000000..a1a4ce5 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/132.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, all IPs assigned, RELEASE_IP error (target)" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x2 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 + +CONTROLFAILS +88 1 ERROR CTDB_CONTROL_RELEASE_IP fake failure +EOF + +required_result 255 <<EOF +RELEASE_IP 10.0.0.33 failed on node 1, ret=-1 +RELEASE_IP 10.0.0.32 failed on node 1, ret=-1 +RELEASE_IP 10.0.0.31 failed on node 1, ret=-1 +Assigning banning credits to node 1 +takeover run failed, ret=-1 +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 0 +10.0.0.32 1 +10.0.0.33 2 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/140.sh b/ctdb/tests/UNIT/takeover_helper/140.sh new file mode 100755 index 0000000..844a35a --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/140.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, GET_PUBLIC_IPS error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 1 +10.0.0.33 1 + +CONTROLFAILS +90 2 ERROR CTDB_CONTROL_GET_PUBLIC_IPS fake failure +EOF + +required_result 255 <<EOF +control GET_PUBLIC_IPS failed on node 2, ret=-1 +Failed to fetch known public IPs +Assigning banning credits to node 2 +takeover run failed, ret=-1 +EOF +test_takeover_helper diff --git a/ctdb/tests/UNIT/takeover_helper/150.sh b/ctdb/tests/UNIT/takeover_helper/150.sh new file mode 100755 index 0000000..56042b4 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/150.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, GET_NODEMAP error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 1 +10.0.0.33 1 + +CONTROLFAILS +91 0 ERROR CTDB_CONTROL_GET_NODEMAP fake failure +EOF + +required_result 255 <<EOF +control GET_NODEMAP failed, ret=-1 +takeover run failed, ret=-1 +EOF +test_takeover_helper diff --git a/ctdb/tests/UNIT/takeover_helper/160.sh b/ctdb/tests/UNIT/takeover_helper/160.sh new file mode 100755 index 0000000..c09f649 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/160.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, GET_ALL_TUNABLES error" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 1 +10.0.0.33 1 + +CONTROLFAILS +53 0 ERROR CTDB_CONTROL_GET_ALL_TUNABLES fake failure +EOF + +required_result 255 <<EOF +control GET_ALL_TUNABLES failed, ret=-1 +takeover run failed, ret=-1 +EOF +test_takeover_helper diff --git a/ctdb/tests/UNIT/takeover_helper/210.sh b/ctdb/tests/UNIT/takeover_helper/210.sh new file mode 100755 index 0000000..eacf024 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/210.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, no IPs, IPREALLOCATED timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +CONTROLFAILS +137 1 TIMEOUT CTDB_CONTROL_IPREALLOCATED fake timeout + +EOF + +required_error ETIMEDOUT <<EOF +No nodes available to host public IPs yet +IPREALLOCATED failed on node 1, ret=$(errcode ETIMEDOUT) +Assigning banning credits to node 1 +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/211.sh b/ctdb/tests/UNIT/takeover_helper/211.sh new file mode 100755 index 0000000..27eebe3 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/211.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned, IPREALLOCATED timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 + +CONTROLFAILS +137 1 TIMEOUT CTDB_CONTROL_IPREALLOCATED fake timeout +EOF + +required_error ETIMEDOUT <<EOF +IPREALLOCATED failed on node 1, ret=$(errcode ETIMEDOUT) +Assigning banning credits to node 1 +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/220.sh b/ctdb/tests/UNIT/takeover_helper/220.sh new file mode 100755 index 0000000..84fc1d7 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/220.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned, TAKEOVER_IP timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 + +CONTROLFAILS +89 1 TIMEOUT CTDB_CONTROL_TAKEOVER_IP fake timeout +EOF + +required_error ETIMEDOUT <<EOF +TAKEOVER_IP 10.0.0.32 failed to node 1, ret=$(errcode ETIMEDOUT) +Assigning banning credits to node 1 +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 2 +10.0.0.32 -1 +10.0.0.33 0 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/230.sh b/ctdb/tests/UNIT/takeover_helper/230.sh new file mode 100755 index 0000000..13ed08b --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/230.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, IPs all unassigned, RELEASE_IP timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 + +CONTROLFAILS +88 2 TIMEOUT CTDB_CONTROL_RELEASE_IP fake timeout +EOF + +required_error ETIMEDOUT <<EOF +RELEASE_IP 10.0.0.33 failed on node 2, ret=$(errcode ETIMEDOUT) +RELEASE_IP 10.0.0.32 failed on node 2, ret=$(errcode ETIMEDOUT) +Assigning banning credits to node 2 +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper + +required_result 0 <<EOF +Public IPs on ALL nodes +10.0.0.31 -1 +10.0.0.32 -1 +10.0.0.33 -1 +EOF +test_ctdb_ip_all diff --git a/ctdb/tests/UNIT/takeover_helper/240.sh b/ctdb/tests/UNIT/takeover_helper/240.sh new file mode 100755 index 0000000..7afb2fc --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/240.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, GET_PUBLIC_IPS timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 1 +10.0.0.33 1 + +CONTROLFAILS +90 2 TIMEOUT CTDB_CONTROL_GET_PUBLIC_IPS fake timeout +EOF + +required_error ETIMEDOUT <<EOF +control GET_PUBLIC_IPS failed on node 2, ret=$(errcode ETIMEDOUT) +Failed to fetch known public IPs +Assigning banning credits to node 2 +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper diff --git a/ctdb/tests/UNIT/takeover_helper/250.sh b/ctdb/tests/UNIT/takeover_helper/250.sh new file mode 100755 index 0000000..91c6766 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/250.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, GET_NODEMAP timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 1 +10.0.0.33 1 + +CONTROLFAILS +91 0 TIMEOUT CTDB_CONTROL_GET_NODEMAP fake timeout +EOF + +required_error ETIMEDOUT <<EOF +control GET_NODEMAP failed to node 0, ret=$(errcode ETIMEDOUT) +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper diff --git a/ctdb/tests/UNIT/takeover_helper/260.sh b/ctdb/tests/UNIT/takeover_helper/260.sh new file mode 100755 index 0000000..7e24e32 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/260.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "3 nodes, all ok, GET_ALL_TUNABLES timeout" + +setup_ctdbd <<EOF +NODEMAP +0 192.168.20.41 0x0 CURRENT RECMASTER +1 192.168.20.42 0x0 +2 192.168.20.43 0x0 + +IFACES +:Name:LinkStatus:References: +:eth2:1:2: +:eth1:1:4: + +PUBLICIPS +10.0.0.31 1 +10.0.0.32 1 +10.0.0.33 1 + +CONTROLFAILS +53 0 TIMEOUT CTDB_CONTROL_GET_ALL_TUNABLES fake timeout +EOF + +required_error ETIMEDOUT <<EOF +control GET_ALL_TUNABLES failed, ret=$(errcode ETIMEDOUT) +takeover run failed, ret=$(errcode ETIMEDOUT) +EOF +test_takeover_helper diff --git a/ctdb/tests/UNIT/takeover_helper/scripts/local.sh b/ctdb/tests/UNIT/takeover_helper/scripts/local.sh new file mode 100644 index 0000000..d36d4e4 --- /dev/null +++ b/ctdb/tests/UNIT/takeover_helper/scripts/local.sh @@ -0,0 +1,108 @@ +# Hey Emacs, this is a -*- shell-script -*- !!! :-) + +if "$CTDB_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 +} |