提交 9c48f28e 编写于 作者: A antirez

Cluster regression test for #3043.

The test works but is very slow so far, since it involves resharding
1/5 of all the cluster slots from master 0 to the other 4 masters and
back into the original master.
上级 4fdde78c
# Replica migration test #2.
#
# Check that the status of master that can be targeted by replica migration
# is acquired again, after being getting slots again, in a cluster where the
# other masters have slaves.
source "../tests/includes/init-tests.tcl"
# Create a cluster with 5 master and 10 slaves, so that we have 2
# slaves for each master.
test "Create a 5 nodes cluster" {
create_cluster 5 10
}
test "Cluster is up" {
assert_cluster_state ok
}
test "Each master should have two replicas attached" {
foreach_redis_id id {
if {$id < 5} {
wait_for_condition 1000 50 {
[llength [lindex [R 0 role] 2]] == 2
} else {
fail "Master #$id does not have 2 slaves as expected"
}
}
}
}
set master0_id [dict get [get_myself 0] id]
test "Resharding all the master #0 slots away from it" {
set output [exec \
../../../src/redis-trib.rb rebalance \
--weight ${master0_id}=0 \
127.0.0.1:[get_instance_attrib redis 0 port] >@ stdout]
}
test "Master #0 should lose its replicas" {
wait_for_condition 1000 50 {
[llength [lindex [R 0 role] 2]] == 0
} else {
fail "Master #0 still has replicas"
}
}
test "Resharding all the master #0 slots back to it" {
set output [exec \
../../../src/redis-trib.rb rebalance \
--weight ${master0_id}=1 \
--use-empty-masters \
127.0.0.1:[get_instance_attrib redis 0 port]]
}
test "Master #0 should re-acquire one or more replicas" {
wait_for_condition 1000 50 {
[llength [lindex [R 0 role] 2]] >= 1
} else {
fail "Master #0 has no has replicas"
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册