Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
08b59207
Commit
08b59207
authored
Jun 14, 2010
by
Pieter Noordhuis
Browse files
change ltrim tests to cover all min/max cases and add stronger stresser
parent
bb039e85
Changes
2
Hide whitespace changes
Inline
Side-by-side
tests/support/test.tcl
View file @
08b59207
...
@@ -26,6 +26,8 @@ proc assert_error {pattern code} {
...
@@ -26,6 +26,8 @@ proc assert_error {pattern code} {
}
}
proc assert_encoding
{
enc key
}
{
proc assert_encoding
{
enc key
}
{
# swapped out value doesn't have encoding, so swap in first
r debug swapin $key
assert_match
"* encoding:
$enc
*"
[
r debug object $key
]
assert_match
"* encoding:
$enc
*"
[
r debug object $key
]
}
}
...
...
tests/unit/type/list.tcl
View file @
08b59207
...
@@ -347,32 +347,61 @@ start_server {
...
@@ -347,32 +347,61 @@ start_server {
}
}
foreach type
{
ziplist list
}
{
foreach type
{
ziplist list
}
{
test
"LTRIM basics -
$type
"
{
proc trim_list
{
type min max
}
{
create_$type mylist
"foo"
r del mylist
for
{
set i 0
}
{
$i
< 100
}
{
incr i
}
{
create_$type mylist
{
1 2 3 4 5
}
r lpush mylist $i
r ltrim mylist $min $max
r ltrim mylist 0 4
}
r lrange mylist 0 -1
r lrange mylist 0 -1
}
{
99 98 97 96 95
}
}
test
"LTRIM stress testing -
$type
"
{
set mylist
{}
for
{
set i 0
}
{
$i
< 20
}
{
incr i
}
{
lappend mylist $i
}
for
{
set j 0
}
{
$j
< 100
}
{
incr j
}
{
test
"LTRIM basics -
$type
"
{
create_$type mylist $mylist
assert_equal
{
1
}
[
trim_list $type 0 0
]
assert_equal
{
1 2
}
[
trim_list $type 0 1
]
assert_equal
{
1 2 3
}
[
trim_list $type 0 2
]
assert_equal
{
2 3
}
[
trim_list $type 1 2
]
assert_equal
{
2 3 4 5
}
[
trim_list $type 1 -1
]
assert_equal
{
2 3 4
}
[
trim_list $type 1 -2
]
assert_equal
{
4 5
}
[
trim_list $type -2 -1
]
assert_equal
{
5
}
[
trim_list $type -1 -1
]
assert_equal
{
1 2 3 4 5
}
[
trim_list $type -5 -1
]
assert_equal
{
1 2 3 4 5
}
[
trim_list $type -10 10
]
assert_equal
{
1 2 3 4 5
}
[
trim_list $type 0 5
]
assert_equal
{
1 2 3 4 5
}
[
trim_list $type 0 10
]
}
# Trim at random
tags
{
"slow"
}
{
set a
[
randomInt 20
]
test
"LTRIM stress testing -
$type
"
{
set b
[
randomInt 20
]
set mylist
{}
r ltrim mylist $a $b
set startlen 32
assert_equal
[
lrange $mylist $a $b
]
[
r lrange mylist 0 -1
]
r del mylist
for
{
set i 0
}
{
$i
< $startlen
}
{
incr i
}
{
set str
[
randomInt 9223372036854775807
]
r rpush mylist $str
lappend mylist $str
}
# do a push/pop of a large value to convert to a real list
if
{
$type
eq
"list"
}
{
r rpush mylist
"aaaaaaaaaaaaaaaaa"
r rpop mylist
assert_encoding list mylist
}
for
{
set i 0
}
{
$i
< 1000
}
{
incr i
}
{
set min
[
expr
{
int
(
rand
()
*$startlen
)}]
set max
[
expr
{
$min
+int
(
rand
()
*$startlen
)}]
set mylist
[
lrange $mylist $min $max
]
r ltrim mylist $min $max
assert_equal $mylist
[
r lrange mylist 0 -1
]
for
{
set j
[
r llen mylist
]}
{
$j
< $startlen
}
{
incr j
}
{
set str
[
randomInt 9223372036854775807
]
r rpush mylist $str
lappend mylist $str
}
}
}
}
}
}
}
}
foreach type
{
ziplist list
}
{
foreach type
{
ziplist list
}
{
...
...
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