]> git.saurik.com Git - redis.git/commitdiff
Added tests for AOF rewrite.
authorantirez <antirez@gmail.com>
Mon, 12 Dec 2011 14:34:00 +0000 (15:34 +0100)
committerantirez <antirez@gmail.com>
Tue, 13 Dec 2011 10:10:36 +0000 (11:10 +0100)
tests/test_helper.tcl
tests/unit/aofrw.tcl [new file with mode: 0644]

index 2918fe7af60b4e45320e8420bd8867addb97230a..459784cd6386997199fe710c5146728aa4bcb7b2 100644 (file)
@@ -25,6 +25,7 @@ set ::all_tests {
     unit/other
     unit/cas
     unit/quit
+    unit/aofrw
     integration/replication
     integration/replication-2
     integration/replication-3
diff --git a/tests/unit/aofrw.tcl b/tests/unit/aofrw.tcl
new file mode 100644 (file)
index 0000000..a558ed4
--- /dev/null
@@ -0,0 +1,107 @@
+start_server {tags {"aofrw"}} {
+    foreach d {string int} {
+        foreach e {ziplist linkedlist} {
+            test "AOF rewrite of list with $e encoding, $d data" {
+                r flushall
+                if {$e eq {ziplist}} {set len 10} else {set len 1000}
+                for {set j 0} {$j < $len} {incr j} {
+                    if {$d eq {string}} {
+                        set data [randstring 0 16 alpha]
+                    } else {
+                        set data [randomInt 4000000000]
+                    }
+                    r lpush key $data
+                }
+                assert_equal [r object encoding key] $e
+                set d1 [r debug digest]
+                r bgrewriteaof
+                waitForBgrewriteaof r
+                r debug loadaof
+                set d2 [r debug digest]
+                if {$d1 ne $d2} {
+                    error "assertion:$d1 is not equal to $d2"
+                }
+            }
+        }
+    }
+
+    foreach d {string int} {
+        foreach e {intset hashtable} {
+            test "AOF rewrite of set with $e encoding, $d data" {
+                r flushall
+                if {$e eq {intset}} {set len 10} else {set len 1000}
+                for {set j 0} {$j < $len} {incr j} {
+                    if {$d eq {string}} {
+                        set data [randstring 0 16 alpha]
+                    } else {
+                        set data [randomInt 4000000000]
+                    }
+                    r sadd key $data
+                }
+                if {$d ne {string}} {
+                    assert_equal [r object encoding key] $e
+                }
+                set d1 [r debug digest]
+                r bgrewriteaof
+                waitForBgrewriteaof r
+                r debug loadaof
+                set d2 [r debug digest]
+                if {$d1 ne $d2} {
+                    error "assertion:$d1 is not equal to $d2"
+                }
+            }
+        }
+    }
+
+    foreach d {string int} {
+        foreach e {zipmap hashtable} {
+            test "AOF rewrite of hash with $e encoding, $d data" {
+                r flushall
+                if {$e eq {zipmap}} {set len 10} else {set len 1000}
+                for {set j 0} {$j < $len} {incr j} {
+                    if {$d eq {string}} {
+                        set data [randstring 0 16 alpha]
+                    } else {
+                        set data [randomInt 4000000000]
+                    }
+                    r hset key $data $data
+                }
+                assert_equal [r object encoding key] $e
+                set d1 [r debug digest]
+                r bgrewriteaof
+                waitForBgrewriteaof r
+                r debug loadaof
+                set d2 [r debug digest]
+                if {$d1 ne $d2} {
+                    error "assertion:$d1 is not equal to $d2"
+                }
+            }
+        }
+    }
+
+    foreach d {string int} {
+        foreach e {ziplist skiplist} {
+            test "AOF rewrite of zset with $e encoding, $d data" {
+                r flushall
+                if {$e eq {ziplist}} {set len 10} else {set len 1000}
+                for {set j 0} {$j < $len} {incr j} {
+                    if {$d eq {string}} {
+                        set data [randstring 0 16 alpha]
+                    } else {
+                        set data [randomInt 4000000000]
+                    }
+                    r zadd key [expr rand()] $data
+                }
+                assert_equal [r object encoding key] $e
+                set d1 [r debug digest]
+                r bgrewriteaof
+                waitForBgrewriteaof r
+                r debug loadaof
+                set d2 [r debug digest]
+                if {$d1 ne $d2} {
+                    error "assertion:$d1 is not equal to $d2"
+                }
+            }
+        }
+    }
+}