Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
ca804a10
Commit
ca804a10
authored
Mar 22, 2015
by
antirez
Browse files
Cluster: more tests for manual failover + FORCE.
parent
d15d9fec
Changes
1
Show whitespace changes
Inline
Side-by-side
tests/cluster/tests/10-manual-failover.tcl
View file @
ca804a10
# Check the
basic monitoring and failover capabilities.
# Check the
manual failover
source
"../tests/includes/init-tests.tcl"
source
"../tests/includes/init-tests.tcl"
...
@@ -93,3 +93,95 @@ test "Instance #0 gets converted into a slave" {
...
@@ -93,3 +93,95 @@ test "Instance #0 gets converted into a slave" {
fail
"Old master was not converted into slave"
fail
"Old master was not converted into slave"
}
}
}
}
## Check that manual failover does not happen if we can't talk with the master.
source
"../tests/includes/init-tests.tcl"
test
"Create a 5 nodes cluster"
{
create_cluster 5 5
}
test
"Cluster is up"
{
assert_cluster_state ok
}
test
"Cluster is writable"
{
cluster_write_test 0
}
test
"Instance #5 is a slave"
{
assert
{[
RI 5 role
]
eq
{
slave
}}
}
test
"Instance #5 synced with the master"
{
wait_for_condition 1000 50
{
[
RI 5 master_link_status
]
eq
{
up
}
}
else
{
fail
"Instance #5 master link status is not up"
}
}
test
"Make instance #0 unreachable without killing it"
{
R 0 deferred 1
R 0 DEBUG SLEEP 10
}
test
"Send CLUSTER FAILOVER to instance #5"
{
R 5 cluster failover
}
test
"Instance #5 is still a slave after some time (no failover)"
{
after 5000
assert
{[
RI 5 role
]
eq
{
master
}}
}
test
"Wait for instance #0 to return back alive"
{
R 0 deferred 0
assert
{[
R 0 read
]
eq
{
OK
}}
}
## Check with
"force"
failover happens anyway.
source
"../tests/includes/init-tests.tcl"
test
"Create a 5 nodes cluster"
{
create_cluster 5 5
}
test
"Cluster is up"
{
assert_cluster_state ok
}
test
"Cluster is writable"
{
cluster_write_test 0
}
test
"Instance #5 is a slave"
{
assert
{[
RI 5 role
]
eq
{
slave
}}
}
test
"Instance #5 synced with the master"
{
wait_for_condition 1000 50
{
[
RI 5 master_link_status
]
eq
{
up
}
}
else
{
fail
"Instance #5 master link status is not up"
}
}
test
"Make instance #0 unreachable without killing it"
{
R 0 deferred 1
R 0 DEBUG SLEEP 10
}
test
"Send CLUSTER FAILOVER to instance #5"
{
R 5 cluster failover force
}
test
"Instance #5 is a master after some time"
{
wait_for_condition 1000 50
{
[
RI 5 role
]
eq
{
master
}
}
else
{
fail
"Instance #5 is not a master after some time regardless of FORCE"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment