X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/d922ae6592228851d3a5b93ce9b3e22be31caddc..08ff05b012fbc988ae3d800262f1e5a21a9148e6:/test-redis.tcl?ds=sidebyside diff --git a/test-redis.tcl b/test-redis.tcl index c5f15bfb..1ac877e1 100644 --- a/test-redis.tcl +++ b/test-redis.tcl @@ -877,18 +877,23 @@ proc main {server port} { 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 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 + $r sadd tosort-set $i $r set weight_$i $rint lappend tosort [list $i $rint] } @@ -904,6 +909,15 @@ proc main {server port} { $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 + } $res + test {SORT direct, numeric, against the newly created list} { $r sort tosort } [lsort -integer $res] @@ -1193,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}} + 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} { @@ -1518,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 + puts -nonewline $fd2 "SELECT 9\r\n" + flush $fd2 + gets $fd2 for {set i 0} {$i < 100000} {incr i} { set q {} @@ -1541,6 +1562,18 @@ proc main {server port} { 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 {}