From 76e0be416d9ba1a81a91ddda08c0dad6e1c9fbe6 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 5 Aug 2015 09:18:54 +0200 Subject: [PATCH] PSYNC test: also test the vanilla SYNC. --- tests/integration/replication-psync.tcl | 45 +++++++++++++++---------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/tests/integration/replication-psync.tcl b/tests/integration/replication-psync.tcl index a7d1e6b8..3a41ceb2 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 }