Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
别团等shy哥发育
redis
提交
d15d9fec
R
redis
项目概览
别团等shy哥发育
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
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,发现更多精彩内容 >>
提交
d15d9fec
编写于
3月 22, 2015
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cluster: new tests1 for manual failover and scripts replication.
上级
c2717911
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
95 addition
and
0 deletion
+95
-0
tests/cluster/tests/10-manual-failover.tcl
tests/cluster/tests/10-manual-failover.tcl
+95
-0
未找到文件。
tests/cluster/tests/10-manual-failover.tcl
0 → 100644
浏览文件 @
d15d9fec
# Check the basic monitoring and failover capabilities.
source
"../tests/includes/init-tests.tcl"
test
"Create a 5 nodes cluster"
{
create_cluster 5 5
}
test
"Cluster is up"
{
assert_cluster_state ok
}
test
"Cluster is writable"
{
cluster_write_test 0
}
test
"Instance #5 is a slave"
{
assert
{[
RI 5 role
]
eq
{
slave
}}
}
test
"Instance #5 synced with the master"
{
wait_for_condition 1000 50
{
[
RI 5 master_link_status
]
eq
{
up
}
}
else
{
fail
"Instance #5 master link status is not up"
}
}
set current_epoch
[
CI 1 cluster_current_epoch
]
set numkeys 50000
set numops 10000
set cluster
[
redis_cluster 127.0.0.1:
[
get_instance_attrib redis 0 port
]]
catch
{
unset content
}
array set content
{}
test
"Send CLUSTER FAILOVER to #5, during load"
{
for
{
set j 0
}
{
$j
< $numops
}
{
incr j
}
{
# Write random data to random list.
set listid
[
randomInt $numkeys
]
set key
"key:
$listid
"
set ele
[
randomValue
]
# We write both with Lua scripts and with plain commands.
# This way we are able to stress Lua -> Redis command invocation
# as well, that has tests to prevent Lua to write into wrong
# hash slots.
if
{
$listid
% 2
}
{
$cluster rpush $key $ele
}
else
{
$cluster eval
{
redis.call
(
"rpush"
,KEYS
[
1
]
,ARGV
[
1
])}
1 $key $ele
}
lappend content
(
$key
)
$ele
if
{(
$j
% 1000
)
== 0
}
{
puts -nonewline W
;
flush stdout
}
if
{
$j
== $numops/2
}
{
R 5 cluster failover
}
}
}
test
"Wait for failover"
{
wait_for_condition 1000 50
{
[
CI 1 cluster_current_epoch
]
> $current_epoch
}
else
{
fail
"No failover detected"
}
}
test
"Cluster should eventually be up again"
{
assert_cluster_state ok
}
test
"Cluster is writable"
{
cluster_write_test 1
}
test
"Instance #5 is now a master"
{
assert
{[
RI 5 role
]
eq
{
master
}}
}
test
"Verify
$numkeys
keys for consistency with logical content"
{
# Check that the Redis Cluster content matches our logical content.
foreach
{
key value
}
[
array get content
]
{
assert
{[
$cluster
lrange $key 0 -1
]
eq $value
}
}
}
test
"Instance #0 gets converted into a slave"
{
wait_for_condition 1000 50
{
[
RI 0 role
]
eq
{
slave
}
}
else
{
fail
"Old master was not converted into slave"
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录