summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2015-12-11 14:27:08 +0100
committerantirez <antirez@gmail.com>2015-12-13 10:17:37 +0100
commit8a02f61b273691f95b0fe1cd5ca79d6e7a03e6ba (patch)
tree2ad60b155c0ad0c5660097bf5f4455f8ee0ba7b3
parent32e940c08430c1ff4e24a57999414511a15ebaaf (diff)
downloadredis-8a02f61b273691f95b0fe1cd5ca79d6e7a03e6ba.tar.gz
MIGRATE: test more corner cases.
-rw-r--r--tests/unit/dump.tcl37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/unit/dump.tcl b/tests/unit/dump.tcl
index 1cac8ce03..ba7d1c457 100644
--- a/tests/unit/dump.tcl
+++ b/tests/unit/dump.tcl
@@ -271,4 +271,41 @@ start_server {tags {"dump"}} {
assert {[$second get key3] eq {v3}}
}
}
+
+ test {MIGRATE with multiple keys: stress command rewriting} {
+ set first [srv 0 client]
+ r flushdb
+ r mset a 1 b 2 c 3 d 4 c 5 e 6 f 7 g 8 h 9 i 10 l 11 m 12 n 13 o 14 p 15 q 16
+ start_server {tags {"repl"}} {
+ set second [srv 0 client]
+ set second_host [srv 0 host]
+ set second_port [srv 0 port]
+
+ set ret [r -1 migrate $second_host $second_port "" 9 5000 keys a b c d e f g h i l m n o p q]
+
+ assert {[$first dbsize] == 0}
+ assert {[$second dbsize] == 15}
+ }
+ }
+
+ test {MIGRATE with multiple keys: delete just ack keys} {
+ set first [srv 0 client]
+ r flushdb
+ r mset a 1 b 2 c 3 d 4 c 5 e 6 f 7 g 8 h 9 i 10 l 11 m 12 n 13 o 14 p 15 q 16
+ start_server {tags {"repl"}} {
+ set second [srv 0 client]
+ set second_host [srv 0 host]
+ set second_port [srv 0 port]
+
+ $second mset c _ d _; # Two busy keys and no REPLACE used
+
+ catch {r -1 migrate $second_host $second_port "" 9 5000 keys a b c d e f g h i l m n o p q} e
+
+ assert {[$first dbsize] == 2}
+ assert {[$second dbsize] == 15}
+ assert {[$first exists c] == 1}
+ assert {[$first exists d] == 1}
+ }
+ }
+
}