]> git.saurik.com Git - redis.git/blobdiff - test-redis.tcl
rdbLoadObject() as a separated function to load objects from disk. Dropped support...
[redis.git] / test-redis.tcl
index 437af93ea3f300c566c927cca694ffcc927967d7..1ac877e11559bcfcd4769ae69683ffb13f423c58 100644 (file)
@@ -877,18 +877,23 @@ proc main {server port} {
         lsort [array names myset]
     } {a b c}
     
         lsort [array names myset]
     } {a b c}
     
-    test {Create a random list} {
+    test {Create a random list and a random set} {
         set tosort {}
         array set seenrand {}
         for {set i 0} {$i < 10000} {incr i} {
             while 1 {
                 # Make sure all the weights are different because
                 # Redis does not use a stable sort but Tcl does.
         set tosort {}
         array set seenrand {}
         for {set i 0} {$i < 10000} {incr i} {
             while 1 {
                 # Make sure all the weights are different because
                 # Redis does not use a stable sort but Tcl does.
-                set rint [expr int(rand()*1000000)]
+                randpath {
+                    set rint [expr int(rand()*1000000)]
+                } {
+                    set rint [expr rand()]
+                }
                 if {![info exists seenrand($rint)]} break
             }
             set seenrand($rint) x
             $r lpush tosort $i
                 if {![info exists seenrand($rint)]} break
             }
             set seenrand($rint) x
             $r lpush tosort $i
+            $r sadd tosort-set $i
             $r set weight_$i $rint
             lappend tosort [list $i $rint]
         }
             $r set weight_$i $rint
             lappend tosort [list $i $rint]
         }
@@ -904,6 +909,10 @@ proc main {server port} {
         $r sort tosort {BY weight_*}
     } $res
 
         $r sort tosort {BY weight_*}
     } $res
 
+    test {the same SORT with BY, but against the newly created set} {
+        $r sort tosort-set {BY weight_*}
+    } $res
+
     test {SORT with BY and STORE against the newly created list} {
         $r sort tosort {BY weight_*} store sort-res
         $r lrange sort-res 0 -1
     test {SORT with BY and STORE against the newly created list} {
         $r sort tosort {BY weight_*} store sort-res
         $r lrange sort-res 0 -1
@@ -1198,6 +1207,10 @@ proc main {server port} {
             [$r zrange ztmp 1 -1] [$r zrevrange ztmp 1 -1]
     } {{y x z} {z x y} {x z} {x y}}
 
             [$r zrange ztmp 1 -1] [$r zrevrange ztmp 1 -1]
     } {{y x z} {z x y} {x z} {x y}}
 
+    test {ZRANGE WITHSCORES} {
+        $r zrange ztmp 0 -1 withscores
+    } {y 1 x 10 z 30}
+
     test {ZSETs stress tester - sorting is working well?} {
         set delta 0
         for {set test 0} {$test < 2} {incr test} {
     test {ZSETs stress tester - sorting is working well?} {
         set delta 0
         for {set test 0} {$test < 2} {incr test} {
@@ -1523,6 +1536,9 @@ proc main {server port} {
     test {PIPELINING stresser (also a regression for the old epoll bug)} {
         set fd2 [socket 127.0.0.1 6379]
         fconfigure $fd2 -encoding binary -translation binary
     test {PIPELINING stresser (also a regression for the old epoll bug)} {
         set fd2 [socket 127.0.0.1 6379]
         fconfigure $fd2 -encoding binary -translation binary
+        puts -nonewline $fd2 "SELECT 9\r\n"
+        flush $fd2
+        gets $fd2
 
         for {set i 0} {$i < 100000} {incr i} {
             set q {}
 
         for {set i 0} {$i < 100000} {incr i} {
             set q {}
@@ -1546,6 +1562,18 @@ proc main {server port} {
         set _ 1
     } {1}
 
         set _ 1
     } {1}
 
+    test {MUTLI / EXEC basics} {
+        $r del mylist
+        $r rpush mylist a
+        $r rpush mylist b
+        $r rpush mylist c
+        $r multi
+        set v1 [$r lrange mylist 0 -1]
+        set v2 [$r ping]
+        set v3 [$r exec]
+        list $v1 $v2 $v3
+    } {QUEUED QUEUED {{a b c} PONG}}
+
     # Leave the user with a clean DB before to exit
     test {FLUSHDB} {
         set aux {}
     # Leave the user with a clean DB before to exit
     test {FLUSHDB} {
         set aux {}