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
dd3f505f
Commit
dd3f505f
authored
Jul 27, 2010
by
antirez
Browse files
Consistency test improved
parent
f99e660b
Changes
2
Hide whitespace changes
Inline
Side-by-side
tests/support/util.tcl
View file @
dd3f505f
...
@@ -224,3 +224,52 @@ proc formatCommand {args} {
...
@@ -224,3 +224,52 @@ proc formatCommand {args} {
}
}
set _ $cmd
set _ $cmd
}
}
proc csvdump r
{
set o
{}
foreach k
[
lsort
[
$r
keys *
]]
{
set type
[
$r
type $k
]
append o
[
csvstring $k
]
,
[
csvstring $type
]
,
switch $type
{
string
{
append o
[
csvstring
[
$r
get $k
]]
"
\n
"
}
list
{
foreach e
[
$r
lrange $k 0 -1
]
{
append o
[
csvstring $e
]
,
}
append o
"
\n
"
}
set
{
foreach e
[
lsort
[
$r
smembers $k
]]
{
append o
[
csvstring $e
]
,
}
append o
"
\n
"
}
zset
{
foreach e
[
$r
zrange $k 0 -1 withscores
]
{
append o
[
csvstring $e
]
,
}
append o
"
\n
"
}
hash
{
set fields
[
$r
hgetall $k
]
set newfields
{}
foreach
{
k v
}
$fields
{
lappend newfields
[
list $k $v
]
}
set fields
[
lsort -index 0 $newfields
]
foreach kv $fields
{
append o
[
csvstring
[
lindex $kv 0
]]
,
append o
[
csvstring
[
lindex $kv 1
]]
,
}
append o
"
\n
"
}
}
}
return $o
}
proc csvstring s
{
return
"
\"
$s
\"
"
}
tests/unit/other.tcl
View file @
dd3f505f
...
@@ -46,23 +46,57 @@ start_server {} {
...
@@ -46,23 +46,57 @@ start_server {} {
set _ $err
set _ $err
}
{
*invalid*
}
}
{
*invalid*
}
if
{
!
[
catch
{
package require sha1
}]}
{
tags
{
consistency
}
{
test
{
Check consistency of different data types after a reload
}
{
if
{
!
[
catch
{
package require sha1
}]}
{
r flushdb
test
{
Check consistency of different data types after a reload
}
{
createComplexDataset r 10000
r flushdb
set sha1
[
r debug digest
]
createComplexDataset r 10000
r debug reload
set dump
[
csvdump r
]
set sha1_after
[
r debug digest
]
set sha1
[
r debug digest
]
expr
{
$sha1
eq $sha1_after
}
r debug reload
}
{
1
}
r set baubau x
set sha1_after
[
r debug digest
]
test
{
Same dataset digest if saving/reloading as AOF?
}
{
if
{
$sha1
eq $sha1_after
}
{
r bgrewriteaof
set _ 1
waitForBgrewriteaof r
}
else
{
r debug loadaof
set newdump
[
csvdump r
]
set sha1_after
[
r debug digest
]
puts
"Consistency test failed!"
expr
{
$sha1
eq $sha1_after
}
puts
"You can inspect the two dumps in /tmp/repldump*.txt"
}
{
1
}
set fd
[
open /tmp/repldump1.txt w
]
puts $fd $dump
close $fd
set fd
[
open /tmp/repldump2.txt w
]
puts $fd $newdump
close $fd
set _ 0
}
}
{
1
}
test
{
Same dataset digest if saving/reloading as AOF?
}
{
r bgrewriteaof
waitForBgrewriteaof r
r debug loadaof
set sha1_after
[
r debug digest
]
if
{
$sha1
eq $sha1_after
}
{
set _ 1
}
else
{
set newdump
[
csvdump r
]
puts
"Consistency test failed!"
puts
"You can inspect the two dumps in /tmp/aofdump*.txt"
set fd
[
open /tmp/aofdump1.txt w
]
puts $fd $dump
close $fd
set fd
[
open /tmp/aofdump2.txt w
]
puts $fd $newdump
close $fd
set _ 0
}
}
{
1
}
}
}
}
test
{
EXPIRES after a reload
(
snapshot + append only file
)}
{
test
{
EXPIRES after a reload
(
snapshot + append only file
)}
{
...
...
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