]> git.saurik.com Git - redis.git/blobdiff - tests/unit/cas.tcl
Scripting: redis.NIL to return nil bulk replies.
[redis.git] / tests / unit / cas.tcl
index febc7d6b4d000ddf9c180c30a73515610a6d02b8..95766abe4580a63602bd65ab26cb4cc110b3d190 100644 (file)
@@ -1,4 +1,4 @@
-start_server {} {
+start_server {tags {"cas"}} {
     test {EXEC works on WATCHed key not modified} {
         r watch x y z
         r watch k
@@ -25,6 +25,16 @@ start_server {} {
         r exec
     } {}
 
+    test {EXEC fail on WATCHed key modified by SORT with STORE even if the result is empty} {
+        r flushdb
+        r lpush foo bar
+        r watch foo
+        r sort emptylist store foo
+        r multi
+        r ping
+        r exec
+    } {}
+
     test {After successful EXEC key is no longer watched} {
         r set x 30
         r watch x
@@ -111,4 +121,46 @@ start_server {} {
         r ping
         r exec
     } {PONG}
+
+    test {WATCH will consider touched keys target of EXPIRE} {
+        r del x
+        r set x foo
+        r watch x
+        r expire x 10
+        r multi
+        r ping
+        r exec
+    } {}
+
+    test {WATCH will not consider touched expired keys} {
+        r del x
+        r set x foo
+        r expire x 1
+        r watch x
+        after 1100
+        r multi
+        r ping
+        r exec
+    } {PONG}
+
+    test {DISCARD should clear the WATCH dirty flag on the client} {
+        r watch x
+        r set x 10
+        r multi
+        r discard
+        r multi
+        r incr x
+        r exec
+    } {11}
+
+    test {DISCARD should UNWATCH all the keys} {
+        r watch x
+        r set x 10
+        r multi
+        r discard
+        r set x 10
+        r multi
+        r incr x
+        r exec
+    } {11}
 }