1# Manual takeover test 2 3source "../tests/includes/init-tests.tcl" 4 5test "Create a 5 nodes cluster" { 6 create_cluster 5 5 7} 8 9test "Cluster is up" { 10 assert_cluster_state ok 11} 12 13test "Cluster is writable" { 14 cluster_write_test 0 15} 16 17test "Killing majority of master nodes" { 18 kill_instance redis 0 19 kill_instance redis 1 20 kill_instance redis 2 21} 22 23test "Cluster should eventually be down" { 24 assert_cluster_state fail 25} 26 27test "Use takeover to bring slaves back" { 28 R 5 cluster failover takeover 29 R 6 cluster failover takeover 30 R 7 cluster failover takeover 31} 32 33test "Cluster should eventually be up again" { 34 assert_cluster_state ok 35} 36 37test "Cluster is writable" { 38 cluster_write_test 4 39} 40 41test "Instance #5, #6, #7 are now masters" { 42 assert {[RI 5 role] eq {master}} 43 assert {[RI 6 role] eq {master}} 44 assert {[RI 7 role] eq {master}} 45} 46 47test "Restarting the previously killed master nodes" { 48 restart_instance redis 0 49 restart_instance redis 1 50 restart_instance redis 2 51} 52 53test "Instance #0, #1, #2 gets converted into a slaves" { 54 wait_for_condition 1000 50 { 55 [RI 0 role] eq {slave} && [RI 1 role] eq {slave} && [RI 2 role] eq {slave} 56 } else { 57 fail "Old masters not converted into slaves" 58 } 59} 60