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
fb38fd3c
Commit
fb38fd3c
authored
Apr 28, 2012
by
antirez
Browse files
A more lightweight implementation of issue 141 regression test.
parent
9e066ae0
Changes
1
Hide whitespace changes
Inline
Side-by-side
tests/integration/replication.tcl
View file @
fb38fd3c
...
@@ -82,12 +82,11 @@ start_server {tags {"repl"}} {
...
@@ -82,12 +82,11 @@ start_server {tags {"repl"}} {
set master_host
[
srv 0 host
]
set master_host
[
srv 0 host
]
set master_port
[
srv 0 port
]
set master_port
[
srv 0 port
]
set slaves
{}
set slaves
{}
set load_handle0
[
start_write_load $master_host $master_port
20
]
set load_handle0
[
start_write_load $master_host $master_port
3
]
set load_handle1
[
start_write_load $master_host $master_port
20
]
set load_handle1
[
start_write_load $master_host $master_port
5
]
set load_handle2
[
start_write_load $master_host $master_port 20
]
set load_handle2
[
start_write_load $master_host $master_port 20
]
set load_handle3
[
start_write_load $master_host $master_port 20
]
set load_handle3
[
start_write_load $master_host $master_port 8
]
set load_handle4
[
start_write_load $master_host $master_port 20
]
set load_handle4
[
start_write_load $master_host $master_port 4
]
after 2000
start_server
{}
{
start_server
{}
{
lappend slaves
[
srv 0 client
]
lappend slaves
[
srv 0 client
]
start_server
{}
{
start_server
{}
{
...
@@ -95,6 +94,7 @@ start_server {tags {"repl"}} {
...
@@ -95,6 +94,7 @@ start_server {tags {"repl"}} {
start_server
{}
{
start_server
{}
{
lappend slaves
[
srv 0 client
]
lappend slaves
[
srv 0 client
]
test
"Connect multiple slaves at the same time (issue #141)"
{
test
"Connect multiple slaves at the same time (issue #141)"
{
# Send SALVEOF commands to slaves
[
lindex $slaves 0
]
slaveof $master_host $master_port
[
lindex $slaves 0
]
slaveof $master_host $master_port
[
lindex $slaves 1
]
slaveof $master_host $master_port
[
lindex $slaves 1
]
slaveof $master_host $master_port
[
lindex $slaves 2
]
slaveof $master_host $master_port
[
lindex $slaves 2
]
slaveof $master_host $master_port
...
@@ -113,16 +113,33 @@ start_server {tags {"repl"}} {
...
@@ -113,16 +113,33 @@ start_server {tags {"repl"}} {
if
{
$retry
== 0
}
{
if
{
$retry
== 0
}
{
error
"assertion:Slaves not correctly synchronized"
error
"assertion:Slaves not correctly synchronized"
}
}
# Stop the write load
stop_write_load $load_handle0
stop_write_load $load_handle0
stop_write_load $load_handle1
stop_write_load $load_handle1
stop_write_load $load_handle2
stop_write_load $load_handle2
stop_write_load $load_handle3
stop_write_load $load_handle3
stop_write_load $load_handle4
stop_write_load $load_handle4
set retry 10
while
{
$retry
&&
([
$master
debug digest
]
ne
[[
lindex $slaves 0
]
debug digest
])}
{
# Wait that slaves exit the
"loading"
state
after 1000
wait_for_condition 500 100
{
incr retry -1
!
[
string match
{
*loading:1*
}
[[
lindex $slaves 0
]
info
]]
&&
!
[
string match
{
*loading:1*
}
[[
lindex $slaves 1
]
info
]]
&&
!
[
string match
{
*loading:1*
}
[[
lindex $slaves 2
]
info
]]
}
else
{
fail
"Slaves still loading data after too much time"
}
}
# Make sure that slaves and master have same number of keys
wait_for_condition 500 100
{
[
$master
dbsize
]
==
[[
lindex $slaves 0
]
dbsize
]
&&
[
$master
dbsize
]
==
[[
lindex $slaves 1
]
dbsize
]
&&
[
$master
dbsize
]
==
[[
lindex $slaves 2
]
dbsize
]
}
else
{
fail
"Different number of keys between masted and slave after too long time."
}
# Check digests
set digest
[
$master
debug digest
]
set digest
[
$master
debug digest
]
set digest0
[[
lindex $slaves 0
]
debug digest
]
set digest0
[[
lindex $slaves 0
]
debug digest
]
set digest1
[[
lindex $slaves 1
]
debug digest
]
set digest1
[[
lindex $slaves 1
]
debug digest
]
...
@@ -131,10 +148,6 @@ start_server {tags {"repl"}} {
...
@@ -131,10 +148,6 @@ start_server {tags {"repl"}} {
assert
{
$digest
eq $digest0
}
assert
{
$digest
eq $digest0
}
assert
{
$digest
eq $digest1
}
assert
{
$digest
eq $digest1
}
assert
{
$digest
eq $digest2
}
assert
{
$digest
eq $digest2
}
#puts
[
$master
dbsize
]
#puts
[[
lindex $slaves 0
]
dbsize
]
#puts
[[
lindex $slaves 1
]
dbsize
]
#puts
[[
lindex $slaves 2
]
dbsize
]
}
}
}
}
}
}
...
...
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