Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
d8f160a8
Commit
d8f160a8
authored
Dec 14, 2010
by
Pieter Noordhuis
Browse files
Add test cases for GETRANGE against integer-encoded strings
parent
ef11bccc
Changes
1
Show whitespace changes
Inline
Side-by-side
tests/unit/basic.tcl
View file @
d8f160a8
...
@@ -563,39 +563,39 @@ start_server {tags {"basic"}} {
...
@@ -563,39 +563,39 @@ start_server {tags {"basic"}} {
assert_error
"*maximum allowed size*"
{
r setrange mykey
[
expr 512*1024*1024-4
]
world
}
assert_error
"*maximum allowed size*"
{
r setrange mykey
[
expr 512*1024*1024-4
]
world
}
}
}
test
{
SUBSTR basics
}
{
test
"GETRANGE against non-existing key"
{
set res
{}
r del mykey
r set foo
"Hello World"
assert_equal
""
[
r getrange mykey 0 -1
]
lappend res
[
r substr foo 0 3
]
}
lappend res
[
r substr foo 0 -1
]
lappend res
[
r substr foo -4 -1
]
test
"GETRANGE against string value"
{
lappend res
[
r substr foo 5 3
]
r set mykey
"Hello World"
lappend res
[
r substr foo 5 5000
]
assert_equal
"Hell"
[
r getrange mykey 0 3
]
lappend res
[
r substr foo -5000 10000
]
assert_equal
"Hello World"
[
r getrange mykey 0 -1
]
set _ $res
assert_equal
"orld"
[
r getrange mykey -4 -1
]
}
{
Hell
{
Hello World
}
orld
{}
{
World
}
{
Hello World
}}
assert_equal
""
[
r getrange mykey 5 3
]
assert_equal
" World"
[
r getrange mykey 5 5000
]
test
{
SUBSTR against integer encoded values
}
{
assert_equal
"Hello World"
[
r getrange mykey -5000 10000
]
r set foo 123
}
r substr foo 0 -2
}
{
12
}
test
"GETRANGE against integer-encoded value"
{
r set mykey 1234
test
{
SUBSTR fuzzing
}
{
assert_equal
"123"
[
r getrange mykey 0 2
]
set err
{}
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
}
{
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 _start
[
set start
[
randomInt 1500
]]
set _end
[
set end
[
randomInt 1500
]]
set _end
[
set end
[
randomInt 1500
]]
if
{
$_start < 0
}
{
set _start
"end-
[
abs
(
$_start
)
-1
]
"
}
if
{
$_start < 0
}
{
set _start
"end-
[
abs
(
$_start
)
-1
]
"
}
if
{
$_end < 0
}
{
set _end
"end-
[
abs
(
$_end
)
-1
]
"
}
if
{
$_end < 0
}
{
set _end
"end-
[
abs
(
$_end
)
-1
]
"
}
set s1
[
string range $bin $_start $_end
]
assert_equal
[
string range $bin $_start $_end
]
[
r getrange bin $start $end
]
r set bin $bin
set s2
[
r substr bin $start $end
]
if
{
$s1
!= $s2
}
{
set err
"String mismatch"
break
}
}
}
}
set _ $err
}
{}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment