diff --git a/tests/cluster/cluster.tcl b/tests/cluster/cluster.tcl index 824f3a80..a7d71ab4 100644 --- a/tests/cluster/cluster.tcl +++ b/tests/cluster/cluster.tcl @@ -61,3 +61,15 @@ proc cluster_allocate_slots {n} { R $j cluster addslots {*}[set slots_${j}] } } + +# Check that cluster nodes agree about "state", or raise an error. +proc assert_cluster_state {state} { + foreach_redis_id id { + if {[instance_is_killed redis $id]} continue + wait_for_condition 1000 50 { + [CI $id cluster_state] eq $state + } else { + fail "Cluster node $id cluster_state:[CI $id cluster_state]" + } + } +} diff --git a/tests/cluster/tests/00-base.tcl b/tests/cluster/tests/00-base.tcl index c3badb9b..5048aa23 100644 --- a/tests/cluster/tests/00-base.tcl +++ b/tests/cluster/tests/00-base.tcl @@ -52,9 +52,7 @@ test "Check if nodes auto-discovery works" { } test "Before slots allocation, all nodes report cluster failure" { - foreach_redis_id id { - assert {[CI $id cluster_state] eq {fail}} - } + assert_cluster_state fail } test "It is possible to perform slot allocation" { @@ -86,13 +84,7 @@ test "After the join, every node gets a different config epoch" { } test "Nodes should report cluster_state is ok now" { - foreach_redis_id id { - wait_for_condition 1000 50 { - [CI $id cluster_state] eq {ok} - } else { - fail "Cluster node $id cluster_state:[CI $id cluster_state]" - } - } + assert_cluster_state ok } test "It is possible to write and read from the cluster" {