mirror of
http://github.com/valkey-io/valkey
synced 2024-11-23 11:51:01 +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)}
|
expr {int(rand()*$max)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc randomSignedInt {max} {
|
||||||
|
set i [randomInt $max]
|
||||||
|
if {rand() > 0.5} {
|
||||||
|
set i -$i
|
||||||
|
}
|
||||||
|
return $i
|
||||||
|
}
|
||||||
|
|
||||||
proc randpath args {
|
proc randpath args {
|
||||||
set path [expr {int(rand()*[llength $args])}]
|
set path [expr {int(rand()*[llength $args])}]
|
||||||
uplevel 1 [lindex $args $path]
|
uplevel 1 [lindex $args $path]
|
||||||
@ -103,13 +111,13 @@ proc randpath args {
|
|||||||
proc randomValue {} {
|
proc randomValue {} {
|
||||||
randpath {
|
randpath {
|
||||||
# Small enough to likely collide
|
# Small enough to likely collide
|
||||||
randomInt 1000
|
randomSignedInt 1000
|
||||||
} {
|
} {
|
||||||
# 32 bit compressible signed/unsigned
|
# 32 bit compressible signed/unsigned
|
||||||
randpath {randomInt 2000000000} {randomInt 4000000000}
|
randpath {randomSignedInt 2000000000} {randomSignedInt 4000000000}
|
||||||
} {
|
} {
|
||||||
# 64 bit
|
# 64 bit
|
||||||
randpath {randomInt 1000000000000}
|
randpath {randomSignedInt 1000000000000}
|
||||||
} {
|
} {
|
||||||
# Random string
|
# Random string
|
||||||
randpath {randstring 0 256 alpha} \
|
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