mirror of
http://github.com/valkey-io/valkey
synced 2024-11-22 00:52:38 +00:00
Add test cases for GETRANGE against integer-encoded strings
This commit is contained in:
parent
ef11bcccca
commit
d8f160a848
@ -563,39 +563,39 @@ start_server {tags {"basic"}} {
|
||||
assert_error "*maximum allowed size*" {r setrange mykey [expr 512*1024*1024-4] world}
|
||||
}
|
||||
|
||||
test {SUBSTR basics} {
|
||||
set res {}
|
||||
r set foo "Hello World"
|
||||
lappend res [r substr foo 0 3]
|
||||
lappend res [r substr foo 0 -1]
|
||||
lappend res [r substr foo -4 -1]
|
||||
lappend res [r substr foo 5 3]
|
||||
lappend res [r substr foo 5 5000]
|
||||
lappend res [r substr foo -5000 10000]
|
||||
set _ $res
|
||||
} {Hell {Hello World} orld {} { World} {Hello World}}
|
||||
test "GETRANGE against non-existing key" {
|
||||
r del mykey
|
||||
assert_equal "" [r getrange mykey 0 -1]
|
||||
}
|
||||
|
||||
test {SUBSTR against integer encoded values} {
|
||||
r set foo 123
|
||||
r substr foo 0 -2
|
||||
} {12}
|
||||
test "GETRANGE against string value" {
|
||||
r set mykey "Hello World"
|
||||
assert_equal "Hell" [r getrange mykey 0 3]
|
||||
assert_equal "Hello World" [r getrange mykey 0 -1]
|
||||
assert_equal "orld" [r getrange mykey -4 -1]
|
||||
assert_equal "" [r getrange mykey 5 3]
|
||||
assert_equal " World" [r getrange mykey 5 5000]
|
||||
assert_equal "Hello World" [r getrange mykey -5000 10000]
|
||||
}
|
||||
|
||||
test {SUBSTR fuzzing} {
|
||||
set err {}
|
||||
test "GETRANGE against integer-encoded value" {
|
||||
r set mykey 1234
|
||||
assert_equal "123" [r getrange mykey 0 2]
|
||||
assert_equal "1234" [r getrange mykey 0 -1]
|
||||
assert_equal "234" [r getrange mykey -3 -1]
|
||||
assert_equal "" [r getrange mykey 5 3]
|
||||
assert_equal "4" [r getrange mykey 3 5000]
|
||||
assert_equal "1234" [r getrange mykey -5000 10000]
|
||||
}
|
||||
|
||||
test "GETRANGE fuzzing" {
|
||||
for {set i 0} {$i < 1000} {incr i} {
|
||||
set bin [randstring 0 1024 binary]
|
||||
r set bin [set bin [randstring 0 1024 binary]]
|
||||
set _start [set start [randomInt 1500]]
|
||||
set _end [set end [randomInt 1500]]
|
||||
if {$_start < 0} {set _start "end-[abs($_start)-1]"}
|
||||
if {$_end < 0} {set _end "end-[abs($_end)-1]"}
|
||||
set s1 [string range $bin $_start $_end]
|
||||
r set bin $bin
|
||||
set s2 [r substr bin $start $end]
|
||||
if {$s1 != $s2} {
|
||||
set err "String mismatch"
|
||||
break
|
||||
}
|
||||
assert_equal [string range $bin $_start $_end] [r getrange bin $start $end]
|
||||
}
|
||||
set _ $err
|
||||
} {}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user