ZRANK stress tester

This commit is contained in:
antirez 2010-03-03 19:44:03 +01:00
parent 912b9165a9
commit 3589e1a7e5
2 changed files with 26 additions and 0 deletions

View 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},

View 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