]> git.saurik.com Git - redis.git/blobdiff - test-redis.tcl
Non blocking replication (finally!). C-side linked lists API improved.
[redis.git] / test-redis.tcl
index 5c4eb571cc308ffe87f191bed51cb5fa05eaf0b5..2fd959321515e0ae7db05825deca5f28f38dce1a 100644 (file)
@@ -424,12 +424,21 @@ proc main {server port} {
         }
         lsort [$r sinter set1 set2]
     } {995 996 997 998 999}
+
+    test {SUNION with two sets} {
+        lsort [$r sunion set1 set2]
+    } [lsort -uniq "[$r smembers set1] [$r smembers set2]"]
     
     test {SINTERSTORE with two sets} {
         $r sinterstore setres set1 set2
         lsort [$r smembers setres]
     } {995 996 997 998 999}
 
+    test {SUNIONSTORE with two sets} {
+        $r sunionstore setres set1 set2
+        lsort [$r smembers setres]
+    } [lsort -uniq "[$r smembers set1] [$r smembers set2]"]
+
     test {SINTER against three sets} {
         $r sadd set3 999
         $r sadd set3 995
@@ -442,7 +451,11 @@ proc main {server port} {
         $r sinterstore setres set1 set2 set3
         lsort [$r smembers setres]
     } {995 999}
-    
+
+    test {SUNION with non existing keys} {
+        lsort [$r sunion nokey1 set1 set2 nokey2]
+    } [lsort -uniq "[$r smembers set1] [$r smembers set2]"]
+
     test {SAVE - make sure there are all the types as values} {
         $r lpush mysavelist hello
         $r lpush mysavelist world
@@ -588,6 +601,29 @@ proc main {server port} {
         $r mget foo baazz bar myset
     } {BAR {} FOO {}}
 
+    test {RANDOMKEY} {
+        $r flushall
+        $r set foo x
+        $r set bar y
+        set foo_seen 0
+        set bar_seen 0
+        for {set i 0} {$i < 100} {incr i} {
+            set rkey [$r randomkey]
+            if {$rkey eq {foo}} {
+                set foo_seen 1
+            }
+            if {$rkey eq {bar}} {
+                set bar_seen 1
+            }
+        }
+        list $foo_seen $bar_seen
+    } {1 1}
+
+    test {RANDOMKEY against empty DB} {
+        $r flushall
+        $r randomkey
+    } {}
+
     # Leave the user with a clean DB before to exit
     test {FLUSHALL} {
         $r flushall