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
1eb13e49
Commit
1eb13e49
authored
Aug 31, 2010
by
Pieter Noordhuis
Browse files
Fix set tests to make sets have a deterministic encoding
parent
fb92ecec
Changes
1
Show whitespace changes
Inline
Side-by-side
tests/unit/type/set.tcl
View file @
1eb13e49
...
...
@@ -106,14 +106,17 @@ start_server {
}
r sadd set5 0
# it is possible that a hashtable encoded only contains integers,
# because it is converted from an intset to a hashtable when a
# non-integer element is added and then removed.
# To make sure the sets are encoded as the type we are testing -- also
# when the VM is enabled and the values may be swapped in and out
# while the tests are running -- an extra element is added to every
# set that determines its encoding.
set large 200
if
{
$type
eq
"hashtable"
}
{
for
{
set i 1
}
{
$i
<= 5
}
{
incr i
}
{
r sadd
[
format
"set%d"
$i
]
foo
r srem
[
format
"set%d"
$i
]
foo
set large foo
}
for
{
set i 1
}
{
$i
<= 5
}
{
incr i
}
{
r sadd
[
format
"set%d"
$i
]
$large
}
test
"Generated sets must be encoded as
$type
"
{
...
...
@@ -123,20 +126,20 @@ start_server {
}
test
"SINTER with two sets -
$type
"
{
assert_equal
{
195 196 197 198 199
}
[
lsort
[
r sinter set1 set2
]]
assert_equal
[
list
195 196 197 198 199
$large
]
[
lsort
[
r sinter set1 set2
]]
}
test
"SINTERSTORE with two sets -
$type
"
{
r sinterstore setres set1 set2
assert_encoding
intset
setres
assert_equal
{
195 196 197 198 199
}
[
lsort
[
r smembers setres
]]
assert_encoding
$type
setres
assert_equal
[
list
195 196 197 198 199
$large
]
[
lsort
[
r smembers setres
]]
}
test
"SINTERSTORE with two sets, after a DEBUG RELOAD -
$type
"
{
r debug reload
r sinterstore setres set1 set2
assert_encoding
intset
setres
assert_equal
{
195 196 197 198 199
}
[
lsort
[
r smembers setres
]]
assert_encoding
$type
setres
assert_equal
[
list
195 196 197 198 199
$large
]
[
lsort
[
r smembers setres
]]
}
test
"SUNION with two sets -
$type
"
{
...
...
@@ -146,18 +149,18 @@ start_server {
test
"SUNIONSTORE with two sets -
$type
"
{
r sunionstore setres set1 set2
assert_encoding
intset
setres
assert_encoding
$type
setres
set expected
[
lsort -uniq
"
[
r smembers set1
]
[
r smembers set2
]
"
]
assert_equal $expected
[
lsort
[
r smembers setres
]]
}
test
"SINTER against three sets -
$type
"
{
assert_equal
{
195 199
}
[
lsort
[
r sinter set1 set2 set3
]]
assert_equal
[
list
195 199
$large
]
[
lsort
[
r sinter set1 set2 set3
]]
}
test
"SINTERSTORE with three sets -
$type
"
{
r sinterstore setres set1 set2 set3
assert_equal
{
195 199
}
[
r smembers setres
]
assert_equal
[
list
195 199
$large
]
[
lsort
[
r smembers setres
]
]
}
test
"SUNION with non existing keys -
$type
"
{
...
...
@@ -175,7 +178,9 @@ start_server {
test
"SDIFFSTORE with three sets -
$type
"
{
r sdiffstore setres set1 set4 set5
assert_encoding intset setres
# The type is determined by type of the first key to diff against.
# See the implementation for more information.
assert_encoding $type setres
assert_equal
{
1 2 3 4
}
[
lsort
[
r smembers setres
]]
}
}
...
...
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