1start_server {tags {"wait"}} { 2start_server {} { 3 set slave [srv 0 client] 4 set slave_host [srv 0 host] 5 set slave_port [srv 0 port] 6 set master [srv -1 client] 7 set master_host [srv -1 host] 8 set master_port [srv -1 port] 9 10 test {Setup slave} { 11 $slave slaveof $master_host $master_port 12 wait_for_condition 50 100 { 13 [s 0 master_link_status] eq {up} 14 } else { 15 fail "Replication not started." 16 } 17 } 18 19 test {WAIT should acknowledge 1 additional copy of the data} { 20 $master set foo 0 21 $master incr foo 22 $master incr foo 23 $master incr foo 24 assert {[$master wait 1 5000] == 1} 25 assert {[$slave get foo] == 3} 26 } 27 28 test {WAIT should not acknowledge 2 additional copies of the data} { 29 $master incr foo 30 assert {[$master wait 2 1000] <= 1} 31 } 32 33 test {WAIT should not acknowledge 1 additional copy if slave is blocked} { 34 exec src/redis-cli -h $slave_host -p $slave_port debug sleep 5 > /dev/null 2> /dev/null & 35 after 1000 ;# Give redis-cli the time to execute the command. 36 $master set foo 0 37 $master incr foo 38 $master incr foo 39 $master incr foo 40 assert {[$master wait 1 3000] == 0} 41 } 42}} 43