]> git.saurik.com Git - redis.git/commitdiff
ZRANK stress tester
authorantirez <antirez@gmail.com>
Wed, 3 Mar 2010 18:44:03 +0000 (19:44 +0100)
committerantirez <antirez@gmail.com>
Wed, 3 Mar 2010 18:44:03 +0000 (19:44 +0100)
redis-cli.c
test-redis.tcl

index 82c2f1b3b2e07bcc959b62161bd4123d88b116f3..e4ff59778c70fe27808671fb374ab5e9f8bf219f 100644 (file)
@@ -101,6 +101,7 @@ static struct redisCommand cmdTable[] = {
     {"zrem",3,REDIS_CMD_BULK},
     {"zremrangebyscore",4,REDIS_CMD_INLINE},
     {"zrange",-4,REDIS_CMD_INLINE},
+    {"zrank",3,REDIS_CMD_BULK},
     {"zrangebyscore",-4,REDIS_CMD_INLINE},
     {"zcount",4,REDIS_CMD_INLINE},
     {"zrevrange",-4,REDIS_CMD_INLINE},
index d0b664be66b96da2fb6df8abbb7337ebbd26411e..4ec3830eebbea8390b6c9897b0c662c97789140a 100644 (file)
@@ -1528,6 +1528,31 @@ proc main {server port} {
         format $diff
     } {0}
 
+    test {ZSETs ZRANK augmented skip list stress testing} {
+        set err {}
+        $r del myzset
+        for {set k 0} {$k < 10000} {incr k} {
+            set i [expr {$k%1000}]
+            if {[expr rand()] < .2} {
+                $r zrem myzset $i
+            } else {
+                set score [expr rand()]
+                $r zadd myzset $score $i
+            }
+            set card [$r zcard myzset]
+            if {$card > 0} {
+                set index [randomInt $card]
+                set ele [lindex [$r zrange myzset $index $index] 0]
+                set rank [$r zrank myzset $ele]
+                if {$rank != $index} {
+                    set err "$ele RANK is wrong! ($rank != [expr $index+1])"
+                    break
+                }
+            }
+        }
+        set _ $err
+    } {}
+
     foreach fuzztype {binary alpha compr} {
         test "FUZZ stresser with data model $fuzztype" {
             set err 0