summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2016-11-29 10:22:40 +0100
committerantirez <antirez@gmail.com>2016-11-29 10:22:40 +0100
commitc8f0690255a0f25f27dc3573bfe7a348b85ac108 (patch)
tree896f4e2de46bf7ac6287c5070f4b5fe88ff2744e
parenteab865a0a1d7e3cb2494c02e601dbdb93b48533c (diff)
downloadredis-c8f0690255a0f25f27dc3573bfe7a348b85ac108.tar.gz
PSYNC2 test: modify the test for production.
-rw-r--r--tests/integration/psync2.tcl50
1 files changed, 33 insertions, 17 deletions
diff --git a/tests/integration/psync2.tcl b/tests/integration/psync2.tcl
index 0857381c1..c6bcc0074 100644
--- a/tests/integration/psync2.tcl
+++ b/tests/integration/psync2.tcl
@@ -3,18 +3,15 @@ start_server {} {
start_server {} {
start_server {} {
start_server {} {
- for {set j 0} {$j < 5} {incr j} {
- set R($j) [srv [expr 0-$j] client]
- set R_host($j) [srv [expr 0-$j] host]
- set R_port($j) [srv [expr 0-$j] port]
- puts "Log file: [srv [expr 0-$j] stdout]"
- }
-
set master_id 0 ; # Current master
set start_time [clock seconds] ; # Test start time
set counter_value 0 ; # Current value of the Redis counter "x"
# Config
+ set debug_msg 0 ; # Enable additional debug messages
+
+ set no_exit 0; ; # Do not exit at end of the test
+
set duration 60 ; # Total test seconds
set genload 1 ; # Load master with writes at every cycle
@@ -27,6 +24,13 @@ start_server {} {
set disconnect_period 1000 ; # Disconnect repl link every N ms.
+ for {set j 0} {$j < 5} {incr j} {
+ set R($j) [srv [expr 0-$j] client]
+ set R_host($j) [srv [expr 0-$j] host]
+ set R_port($j) [srv [expr 0-$j] port]
+ if {$debug_msg} {puts "Log file: [srv [expr 0-$j] stdout]"}
+ }
+
while {([clock seconds]-$start_time) < $duration} {
# Create a random replication layout.
@@ -87,7 +91,9 @@ start_server {} {
set slave_id [randomInt 5]
if {$disconnect} {
$R($slave_id) client kill type master
- puts "+++ Breaking link for slave #$slave_id"
+ if {$debug_msg} {
+ puts "+++ Breaking link for slave #$slave_id"
+ }
}
}
}
@@ -112,17 +118,27 @@ start_server {} {
# and sometimes a full resync will be needed.
$R($master_id) slaveof 127.0.0.1 0 ;# We use port zero to make it fail.
- for {set j 0} {$j < 5} {incr j} {
- puts "$j: sync_full: [status $R($j) sync_full]"
- puts "$j: id1 : [status $R($j) master_replid]:[status $R($j) master_repl_offset]"
- puts "$j: id2 : [status $R($j) master_replid2]:[status $R($j) second_repl_offset]"
- puts "$j: backlog : firstbyte=[status $R($j) repl_backlog_first_byte_offset] len=[status $R($j) repl_backlog_histlen]"
- puts "---"
+ if {$debug_msg} {
+ for {set j 0} {$j < 5} {incr j} {
+ puts "$j: sync_full: [status $R($j) sync_full]"
+ puts "$j: id1 : [status $R($j) master_replid]:[status $R($j) master_repl_offset]"
+ puts "$j: id2 : [status $R($j) master_replid2]:[status $R($j) second_repl_offset]"
+ puts "$j: backlog : firstbyte=[status $R($j) repl_backlog_first_byte_offset] len=[status $R($j) repl_backlog_histlen]"
+ puts "---"
+ }
+ }
+
+ test "PSYNC2: total sum of full synchronizations is exactly 4" {
+ set sum 0
+ for {set j 0} {$j < 5} {incr j} {
+ incr sum [status $R($j) sync_full]
+ }
+ assert {$sum == 4}
}
}
-# XXXXXXXXXXXX
- while 1 { puts -nonewline .; flush stdout; after 1000}
-# XXXXXXXXXXXX
+ if {$no_exit} {
+ while 1 { puts -nonewline .; flush stdout; after 1000}
+ }
}}}}}