]> git.saurik.com Git - redis.git/blobdiff - tests/unit/aofrw.tcl
Merge remote-tracking branch 'origin/unstable' into unstable
[redis.git] / tests / unit / aofrw.tcl
index 358266ef78059eb56a0300d3f3f46ee351859a4b..e341d77b215159e1e47867b140387bb809cce2c2 100644 (file)
@@ -1,4 +1,15 @@
 start_server {tags {"aofrw"}} {
+
+    test {Turning off AOF kills the background writing child if any} {
+        r config set appendonly yes
+        waitForBgrewriteaof r
+        r multi
+        r bgrewriteaof
+        r config set appendonly no
+        r exec
+        set result [exec cat [srv 0 stdout] | tail -n1]
+    } {*Killing*AOF*child*}
+
     foreach d {string int} {
         foreach e {ziplist linkedlist} {
             test "AOF rewrite of list with $e encoding, $d data" {
@@ -104,4 +115,30 @@ start_server {tags {"aofrw"}} {
             }
         }
     }
+
+    test {BGREWRITEAOF is delayed if BGSAVE is in progress} {
+        r multi
+        r bgsave
+        r bgrewriteaof
+        r info persistence
+        set res [r exec]
+        assert_match {*scheduled*} [lindex $res 1]
+        assert_match {*bgrewriteaof_scheduled:1*} [lindex $res 2]
+        while {[string match {*bgrewriteaof_scheduled:1*} [r info persistence]]} {
+            after 100
+        }
+    }
+
+    test {BGREWRITEAOF is refused if already in progress} {
+        catch {
+            r multi
+            r bgrewriteaof
+            r bgrewriteaof
+            r exec
+        } e
+        assert_match {*ERR*already*} $e
+        while {[string match {*bgrewriteaof_scheduled:1*} [r info persistence]]} {
+            after 100
+        }
+    }
 }