Bit operations tests improved.
Fuzzing tests of BITCOUNT / BITOP are iterated multiple times. The new BITCOUNT fuzzing test uses random strings in a wider interval of lengths including zero-len strings.
This commit is contained in:
parent
5ca752bccb
commit
7021d1b75c
@ -44,11 +44,7 @@ start_server {tags {"bitops"}} {
|
||||
} 0
|
||||
|
||||
catch {unset num}
|
||||
foreach vec [list \
|
||||
"" "\xaa" "\x00\x00\xff" "foobar" \
|
||||
[randstring 2000 3000] [randstring 2000 3000] \
|
||||
[randstring 2000 3000] \
|
||||
] {
|
||||
foreach vec [list "" "\xaa" "\x00\x00\xff" "foobar"] {
|
||||
incr num
|
||||
test "BITCOUNT against test vector #$num" {
|
||||
r set str $vec
|
||||
@ -56,6 +52,14 @@ start_server {tags {"bitops"}} {
|
||||
}
|
||||
}
|
||||
|
||||
test {BITCOUNT fuzzing} {
|
||||
for {set j 0} {$j < 100} {incr j} {
|
||||
set str [randstring 0 3000]
|
||||
r set str $str
|
||||
assert {[r bitcount str] == [count_bits $str]}
|
||||
}
|
||||
}
|
||||
|
||||
test {BITCOUNT with start, end} {
|
||||
r set s "foobar"
|
||||
assert_equal [r bitcount s 0 -1] [count_bits "foobar"]
|
||||
@ -114,6 +118,7 @@ start_server {tags {"bitops"}} {
|
||||
|
||||
foreach op {and or xor} {
|
||||
test "BITOP $op fuzzing" {
|
||||
for {set i 0} {$i < 10} {incr i} {
|
||||
set vec {}
|
||||
set veckeys {}
|
||||
set numvec [expr {[randomInt 10]+1}]
|
||||
@ -127,4 +132,5 @@ start_server {tags {"bitops"}} {
|
||||
assert_equal [r get target] [simulate_bit_op $op {*}$vec]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user