Tests added for min-slaves feature.

This commit is contained in:
antirez 2013-05-30 18:54:28 +02:00
parent 915c06a96c
commit 434a86dbd8
2 changed files with 46 additions and 0 deletions

View File

@ -54,3 +54,45 @@ start_server {tags {"repl"}} {
}
}
}
start_server {tags {"repl"}} {
start_server {} {
set master [srv -1 client]
set master_host [srv -1 host]
set master_port [srv -1 port]
set slave [srv 0 client]
test {First server should have role slave after SLAVEOF} {
$slave slaveof $master_host $master_port
wait_for_condition 50 100 {
[s 0 master_link_status] eq {up}
} else {
fail "Replication not started."
}
}
test {With min-slaves-to-write (1,3): master should be writable} {
$master config set min-slaves-max-lag 3
$master config set min-slaves-to-write 1
$master set foo bar
} {OK}
test {With min-slaves-to-write (2,3): master should not be writable} {
$master config set min-slaves-max-lag 3
$master config set min-slaves-to-write 2
catch {$master set foo bar} e
set e
} {NOREPLICAS*}
test {With min-slaves-to-write: master not writable with lagged slave} {
$master config set min-slaves-max-lag 2
$master config set min-slaves-to-write 1
assert {[$master set foo bar] eq {OK}}
$slave deferred 1
$slave debug sleep 4
after 3000
catch {$master set foo bar} e
set e
} {NOREPLICAS*}
}
}

View File

@ -115,6 +115,10 @@ proc ::redis::__method__channel {id fd} {
return $fd
}
proc ::redis::__method__deferred {id fd val} {
set ::redis::deferred($id) $val
}
proc ::redis::redis_write {fd buf} {
puts -nonewline $fd $buf
}