summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2015-08-05 09:18:54 +0200
committerantirez <antirez@gmail.com>2015-08-05 09:18:54 +0200
commit76e0be416d9ba1a81a91ddda08c0dad6e1c9fbe6 (patch)
tree8a16e696164e25ca4b953ca40f06b0bcfe61d202
parent62b5c60ead59e29663a44a79148ee4ffdf2f6ec2 (diff)
downloadredis-76e0be416d9ba1a81a91ddda08c0dad6e1c9fbe6.tar.gz
PSYNC test: also test the vanilla SYNC.
-rw-r--r--tests/integration/replication-psync.tcl45
1 files changed, 27 insertions, 18 deletions
diff --git a/tests/integration/replication-psync.tcl b/tests/integration/replication-psync.tcl
index a7d1e6b8c..3a41ceb21 100644
--- a/tests/integration/replication-psync.tcl
+++ b/tests/integration/replication-psync.tcl
@@ -13,7 +13,11 @@ proc stop_bg_complex_data {handle} {
#
# You can specifiy backlog size, ttl, delay before reconnection, test duration
# in seconds, and an additional condition to verify at the end.
-proc test_psync {descr duration backlog_size backlog_ttl delay cond diskless} {
+#
+# If reconnect is > 0, the test actually try to break the connection and
+# reconnect with the master, otherwise just the initial synchronization is
+# checked for consistency.
+proc test_psync {descr duration backlog_size backlog_ttl delay cond diskless reconnect} {
start_server {tags {"repl"}} {
start_server {} {
@@ -50,22 +54,24 @@ proc test_psync {descr duration backlog_size backlog_ttl delay cond diskless} {
}
}
- test "Test replication partial resync: $descr (diskless: $diskless)" {
+ test "Test replication partial resync: $descr (diskless: $diskless, reconnect: $reconnect)" {
# Now while the clients are writing data, break the maste-slave
# link multiple times.
- for {set j 0} {$j < $duration*10} {incr j} {
- after 100
- # catch {puts "MASTER [$master dbsize] keys, SLAVE [$slave dbsize] keys"}
+ if ($reconnect) {
+ for {set j 0} {$j < $duration*10} {incr j} {
+ after 100
+ # catch {puts "MASTER [$master dbsize] keys, SLAVE [$slave dbsize] keys"}
- if {($j % 20) == 0} {
- catch {
- if {$delay} {
- $slave multi
- $slave client kill $master_host:$master_port
- $slave debug sleep $delay
- $slave exec
- } else {
- $slave client kill $master_host:$master_port
+ if {($j % 20) == 0} {
+ catch {
+ if {$delay} {
+ $slave multi
+ $slave client kill $master_host:$master_port
+ $slave debug sleep $delay
+ $slave exec
+ } else {
+ $slave client kill $master_host:$master_port
+ }
}
}
}
@@ -101,19 +107,22 @@ proc test_psync {descr duration backlog_size backlog_ttl delay cond diskless} {
}
foreach diskless {no yes} {
+ test_psync {no reconnection, just sync} 6 1000000 3600 0 {
+ } $diskless 0
+
test_psync {ok psync} 6 1000000 3600 0 {
assert {[s -1 sync_partial_ok] > 0}
- } $diskless
+ } $diskless 1
test_psync {no backlog} 6 100 3600 0.5 {
assert {[s -1 sync_partial_err] > 0}
- } $diskless
+ } $diskless 1
test_psync {ok after delay} 3 100000000 3600 3 {
assert {[s -1 sync_partial_ok] > 0}
- } $diskless
+ } $diskless 1
test_psync {backlog expired} 3 100000000 1 3 {
assert {[s -1 sync_partial_err] > 0}
- } $diskless
+ } $diskless 1
}