]> git.saurik.com Git - redis.git/commitdiff
Test: make sure EXEC fails after previous transaction errors.
authorantirez <antirez@gmail.com>
Sat, 17 Nov 2012 11:09:17 +0000 (12:09 +0100)
committerantirez <antirez@gmail.com>
Thu, 22 Nov 2012 09:36:32 +0000 (10:36 +0100)
tests/unit/multi.tcl

index 9069b95bef8bc992fdcc4d266bcdf9328222e012..f8d42d4c7939d21bda2c05e8caae27701955fbf6 100644 (file)
@@ -46,6 +46,34 @@ start_server {tags {"multi"}} {
         set _ $err
     } {*ERR WATCH*}
 
+    test {EXEC fails if there are errors while queueing commands #1} {
+        r del foo1 foo2
+        r multi
+        r set foo1 bar1
+        catch {r non-existing-command}
+        r set foo2 bar2
+        catch {r exec} e
+        assert_match {EXECABORT*} $e
+        list [r exists foo1] [r exists foo2]
+    } {0 0}
+
+    test {EXEC fails if there are errors while queueing commands #2} {
+        set rd [redis_deferring_client]
+        r del foo1 foo2
+        r multi
+        r set foo1 bar1
+        $rd config set maxmemory 1
+        catch {r lpush mylist myvalue}
+        $rd config set maxmemory 0
+        r set foo2 bar2
+        catch {r exec} e
+        assert_match {EXECABORT*} $e
+        assert  {[$rd read] eq {OK}}
+        assert  {[$rd read] eq {OK}}
+        $rd close
+        list [r exists foo1] [r exists foo2]
+    } {0 0}
+
     test {EXEC works on WATCHed key not modified} {
         r watch x y z
         r watch k