mirror of
http://github.com/valkey-io/valkey
synced 2024-11-23 03:33:28 +00:00
New test: hash ziplist -> hashtable encoding conversion.
A new stress test was added to stress test the code converting a ziplist into an hash table. In this commit also randomValue helper function was modified to also return negative values.
This commit is contained in:
parent
80e808b6d6
commit
c0de45924c
@ -95,6 +95,14 @@ proc randomInt {max} {
|
||||
expr {int(rand()*$max)}
|
||||
}
|
||||
|
||||
proc randomSignedInt {max} {
|
||||
set i [randomInt $max]
|
||||
if {rand() > 0.5} {
|
||||
set i -$i
|
||||
}
|
||||
return $i
|
||||
}
|
||||
|
||||
proc randpath args {
|
||||
set path [expr {int(rand()*[llength $args])}]
|
||||
uplevel 1 [lindex $args $path]
|
||||
@ -103,13 +111,13 @@ proc randpath args {
|
||||
proc randomValue {} {
|
||||
randpath {
|
||||
# Small enough to likely collide
|
||||
randomInt 1000
|
||||
randomSignedInt 1000
|
||||
} {
|
||||
# 32 bit compressible signed/unsigned
|
||||
randpath {randomInt 2000000000} {randomInt 4000000000}
|
||||
randpath {randomSignedInt 2000000000} {randomSignedInt 4000000000}
|
||||
} {
|
||||
# 64 bit
|
||||
randpath {randomInt 1000000000000}
|
||||
randpath {randomSignedInt 1000000000000}
|
||||
} {
|
||||
# Random string
|
||||
randpath {randstring 0 256 alpha} \
|
||||
|
@ -419,4 +419,15 @@ start_server {tags {"hash"}} {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test {Stress test the hash ziplist -> hashtable encoding conversion} {
|
||||
r config set hash-max-ziplist-entries 32
|
||||
for {set j 0} {$j < 100} {incr j} {
|
||||
r del myhash
|
||||
for {set i 0} {$i < 64} {incr i} {
|
||||
r hset myhash [randomValue] [randomValue]
|
||||
}
|
||||
assert {[r object encoding myhash] eq {hashtable}}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user