diff options
author | antirez <antirez@gmail.com> | 2014-06-05 10:46:08 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2014-06-05 10:50:32 +0200 |
commit | cfe2d563bccb71692c56b1386403abb948e8bbb4 (patch) | |
tree | 5b4d05e424c6e62dea806703886db42522f92584 | |
parent | 751c8698d4f739de4c3c9703f2887018ae3c9726 (diff) | |
download | redis-cfe2d563bccb71692c56b1386403abb948e8bbb4.tar.gz |
Tests for min-slaves-* feature.
-rw-r--r-- | tests/integration/replication-2.tcl | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/integration/replication-2.tcl b/tests/integration/replication-2.tcl index 5450bdd85..9446e5cd9 100644 --- a/tests/integration/replication-2.tcl +++ b/tests/integration/replication-2.tcl @@ -6,6 +6,66 @@ start_server {tags {"repl"}} { s -1 role } {slave} + test {If min-slaves-to-write is honored, write is accepted} { + r config set min-slaves-to-write 1 + r config set min-slaves-max-lag 10 + r set foo 12345 + wait_for_condition 50 100 { + [r -1 get foo] eq {12345} + } else { + fail "Write did not reached slave" + } + } + + test {No write if min-slaves-to-write is < attached slaves} { + r config set min-slaves-to-write 2 + r config set min-slaves-max-lag 10 + catch {r set foo 12345} err + set err + } {NOREPLICAS*} + + test {If min-slaves-to-write is honored, write is accepted (again)} { + r config set min-slaves-to-write 1 + r config set min-slaves-max-lag 10 + r set foo 12345 + wait_for_condition 50 100 { + [r -1 get foo] eq {12345} + } else { + fail "Write did not reached slave" + } + } + + test {No write if min-slaves-max-lag is > of the slave lag} { + r -1 deferred 1 + r config set min-slaves-to-write 1 + r config set min-slaves-max-lag 2 + r -1 debug sleep 6 + assert {[r set foo 12345] eq {OK}} + after 4000 + catch {r set foo 12345} err + assert {[r -1 read] eq {OK}} + r -1 deferred 0 + set err + } {NOREPLICAS*} + + test {min-slaves-to-write is ignored by slaves} { + r config set min-slaves-to-write 1 + r config set min-slaves-max-lag 10 + r -1 config set min-slaves-to-write 1 + r -1 config set min-slaves-max-lag 10 + r set foo aaabbb + wait_for_condition 50 100 { + [r -1 get foo] eq {aaabbb} + } else { + fail "Write did not reached slave" + } + } + + # Fix parameters for the next test to work + r config set min-slaves-to-write 0 + r -1 config set min-slaves-to-write 0 + r flushall + test {MASTER and SLAVE dataset should be identical after complex ops} { createComplexDataset r 10000 after 500 |