Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
b78fd80f
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b78fd80f
编写于
5月 15, 2010
作者:
A
antirez
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'integration' of
git://github.com/pietern/redis
上级
3863d8ea
85ecc65e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
93 addition
and
20 deletion
+93
-20
tests/integration/replication.tcl
tests/integration/replication.tcl
+32
-0
tests/support/server.tcl
tests/support/server.tcl
+13
-11
tests/support/util.tcl
tests/support/util.tcl
+19
-4
tests/test_helper.tcl
tests/test_helper.tcl
+29
-5
未找到文件。
tests/integration/replication.tcl
0 → 100644
浏览文件 @
b78fd80f
start_server default.conf
{}
{
r set mykey foo
start_server default.conf
{}
{
test
{
Second server should have role master at first
}
{
s role
}
{
master
}
test
{
SLAVEOF should start with link status
"down"
}
{
r slaveof
[
srv -1 host
]
[
srv -1 port
]
s master_link_status
}
{
down
}
test
{
The role should immediately be changed to
"slave"
}
{
s role
}
{
slave
}
wait_for_sync r
test
{
Sync should have transferred keys from master
}
{
r get mykey
}
{
foo
}
test
{
The link status should be up
}
{
s master_link_status
}
{
up
}
test
{
SET on the master should immediately propagate
}
{
r -1 set mykey bar
r 0 get mykey
}
{
bar
}
}
}
tests/support/server.tcl
浏览文件 @
b78fd80f
...
...
@@ -103,23 +103,25 @@ proc start_server {filename overrides {code undefined}} {
}
# setup config dict
dict set ret
"config"
$config_file
dict set ret
"pid"
$pid
dict set ret
"stdout"
$stdout
dict set ret
"stderr"
$stderr
dict set ret
"client"
$client
dict set srv
"config"
$config_file
dict set srv
"pid"
$pid
dict set srv
"host"
$host
dict set srv
"port"
$port
dict set srv
"stdout"
$stdout
dict set srv
"stderr"
$stderr
dict set srv
"client"
$client
if
{
$code
ne
"undefined"
}
{
# append the
client to the client
stack
lappend ::
clients $client
# append the
server to the
stack
lappend ::
servers $srv
# execute provided block
catch
{
uplevel 1 $code
}
err
# pop the
client
object
set ::
clients
[
lrange $::client
s 0 end-1
]
# pop the
server
object
set ::
servers
[
lrange $::server
s 0 end-1
]
kill_server $
ret
kill_server $
srv
if
{[
string length $err
]
> 0
}
{
puts
"Error executing the suite, aborting..."
...
...
@@ -127,6 +129,6 @@ proc start_server {filename overrides {code undefined}} {
exit 1
}
}
else
{
set _ $
ret
set _ $
srv
}
}
tests/support/util.tcl
浏览文件 @
b78fd80f
...
...
@@ -25,10 +25,16 @@ proc zlistAlikeSort {a b} {
string compare
[
lindex $a 1
]
[
lindex $b 1
]
}
# Return value for INFO property
proc status
{
r property
}
{
if
{[
regexp
"
\r\n
$property:
(.*?)
\r\n
"
[
$r
info
]
_ value
]}
{
set _ $value
}
}
proc waitForBgsave r
{
while 1
{
set i
[
$r
info
]
if
{[
string match
{
*bgsave_in_progress:1*
}
$i
]}
{
if
{[
status r bgsave_in_progress
]
eq 1
}
{
puts -nonewline
"
\n
Waiting for background save to finish... "
flush stdout
after 1000
...
...
@@ -40,8 +46,7 @@ proc waitForBgsave r {
proc waitForBgrewriteaof r
{
while 1
{
set i
[
$r
info
]
if
{[
string match
{
*bgrewriteaof_in_progress:1*
}
$i
]}
{
if
{[
status r bgrewriteaof_in_progress
]
eq 1
}
{
puts -nonewline
"
\n
Waiting for background AOF rewrite to finish... "
flush stdout
after 1000
...
...
@@ -51,6 +56,16 @@ proc waitForBgrewriteaof r {
}
}
proc wait_for_sync r
{
while 1
{
if
{[
status r master_link_status
]
eq
"down"
}
{
after 10
}
else
{
break
}
}
}
proc randomInt
{
max
}
{
expr
{
int
(
rand
()
*$max
)}
}
...
...
tests/test_helper.tcl
浏览文件 @
b78fd80f
...
...
@@ -18,12 +18,35 @@ proc execute_tests name {
source
"tests/
$name.tcl
"
}
# setup a list to hold a stack of clients. the proc
"r"
provides easy
# access to the client at the top of the stack
set ::clients
{}
# Setup a list to hold a stack of server configs. When calls to start_server
# are nested, use
"srv 0 pid"
to get the pid of the inner server. To access
# outer servers, use
"srv -1 pid"
etcetera.
set ::servers
{}
proc srv
{
level property
}
{
set srv
[
lindex $::servers end+$level
]
dict get $srv $property
}
# Provide easy access to the client for the inner server. It's possible to
# prepend the argument list with a negative level to access clients for
# servers running in outer blocks.
proc r
{
args
}
{
set client
[
lindex $::clients end
]
$client
{*}
$args
set level 0
if
{[
string is integer
[
lindex $args 0
]]}
{
set level
[
lindex $args 0
]
set args
[
lrange $args 1 end
]
}
[
srv $level
"client"
]
{*}
$args
}
# Provide easy access to INFO properties. Same semantic as
"proc r"
.
proc s
{
args
}
{
set level 0
if
{[
string is integer
[
lindex $args 0
]]}
{
set level
[
lindex $args 0
]
set args
[
lrange $args 1 end
]
}
status
[
srv $level
"client"
]
[
lindex $args 0
]
}
proc main
{}
{
...
...
@@ -37,6 +60,7 @@ proc main {} {
execute_tests
"unit/sort"
execute_tests
"unit/expire"
execute_tests
"unit/other"
execute_tests
"integration/replication"
puts
"
\n
[
expr $::passed+$::failed
]
tests,
$::passed
passed,
$::failed
failed"
if
{
$::failed
> 0
}
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录