Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
49448b4a
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
49448b4a
编写于
3月 13, 2019
作者:
A
alesapin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Retry on Exception connection loss
上级
cf8001b6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
14 deletion
+33
-14
dbms/tests/clickhouse-test
dbms/tests/clickhouse-test
+33
-14
未找到文件。
dbms/tests/clickhouse-test
浏览文件 @
49448b4a
...
...
@@ -30,6 +30,10 @@ MSG_UNKNOWN = OP_SQUARE_BRACKET + colored(" UNKNOWN ", "yellow", attrs=['bold'])
MSG_OK
=
OP_SQUARE_BRACKET
+
colored
(
" OK "
,
"green"
,
attrs
=
[
'bold'
])
+
CL_SQUARE_BRACKET
MSG_SKIPPED
=
OP_SQUARE_BRACKET
+
colored
(
" SKIPPED "
,
"cyan"
,
attrs
=
[
'bold'
])
+
CL_SQUARE_BRACKET
MESSAGES_TO_RETRY
=
[
"Coordination::Exception: Connection loss"
,
]
def
remove_control_characters
(
s
):
"""
...
...
@@ -44,6 +48,28 @@ def remove_control_characters(s):
s
=
re
.
sub
(
ur
"[\x00-\x08\x0b\x0e-\x1f\x7f]"
,
""
,
s
)
return
s
def
run_single_test
(
args
,
ext
,
server_logs_level
,
case_file
,
stdout_file
,
stderr_file
):
if
ext
==
'.sql'
:
command
=
"{0} --send_logs_level={1} --testmode --multiquery < {2} > {3} 2> {4}"
.
format
(
args
.
client
,
server_logs_level
,
case_file
,
stdout_file
,
stderr_file
)
else
:
command
=
"{} > {} 2> {}"
.
format
(
case_file
,
stdout_file
,
stderr_file
)
proc
=
Popen
(
command
,
shell
=
True
)
start_time
=
datetime
.
now
()
while
(
datetime
.
now
()
-
start_time
).
total_seconds
()
<
args
.
timeout
and
proc
.
poll
()
is
None
:
sleep
(
0.01
)
stdout
=
open
(
stdout_file
,
'r'
).
read
()
if
os
.
path
.
exists
(
stdout_file
)
else
''
stdout
=
unicode
(
stdout
,
errors
=
'replace'
,
encoding
=
'utf-8'
)
stderr
=
open
(
stderr_file
,
'r'
).
read
()
if
os
.
path
.
exists
(
stderr_file
)
else
''
stderr
=
unicode
(
stderr
,
errors
=
'replace'
,
encoding
=
'utf-8'
)
return
proc
,
stdout
,
stderr
def
need_retry
(
stderr
):
return
any
(
msg
in
stderr
for
msg
in
MESSAGES_TO_RETRY
)
def
main
(
args
):
SERVER_DIED
=
False
...
...
@@ -201,16 +227,7 @@ def main(args):
stdout_file
=
os
.
path
.
join
(
suite_tmp_dir
,
name
)
+
'.stdout'
stderr_file
=
os
.
path
.
join
(
suite_tmp_dir
,
name
)
+
'.stderr'
if
ext
==
'.sql'
:
command
=
"{0} --send_logs_level={1} --testmode --multiquery < {2} > {3} 2> {4}"
.
format
(
args
.
client
,
server_logs_level
,
case_file
,
stdout_file
,
stderr_file
)
else
:
command
=
"{} > {} 2> {}"
.
format
(
case_file
,
stdout_file
,
stderr_file
)
proc
=
Popen
(
command
,
shell
=
True
)
start_time
=
datetime
.
now
()
while
(
datetime
.
now
()
-
start_time
).
total_seconds
()
<
args
.
timeout
and
proc
.
poll
()
is
None
:
sleep
(
0.01
)
proc
,
stdout
,
stderr
=
run_single_test
(
args
,
ext
,
server_logs_level
,
case_file
,
stdout_file
,
stderr_file
)
if
proc
.
returncode
is
None
:
try
:
proc
.
kill
()
...
...
@@ -224,10 +241,12 @@ def main(args):
failures
+=
1
print
(
"{0} - Timeout!"
.
format
(
MSG_FAIL
))
else
:
stdout
=
open
(
stdout_file
,
'r'
).
read
()
if
os
.
path
.
exists
(
stdout_file
)
else
''
stdout
=
unicode
(
stdout
,
errors
=
'replace'
,
encoding
=
'utf-8'
)
stderr
=
open
(
stderr_file
,
'r'
).
read
()
if
os
.
path
.
exists
(
stderr_file
)
else
''
stderr
=
unicode
(
stderr
,
errors
=
'replace'
,
encoding
=
'utf-8'
)
counter
=
1
while
proc
.
returncode
!=
0
and
need_retry
(
stderr
):
proc
,
stdout
,
stderr
=
run_single_test
(
args
,
ext
,
server_logs_level
,
case_file
,
stdout_file
,
stderr_file
)
sleep
(
2
**
counter
)
if
counter
>
6
:
break
if
proc
.
returncode
!=
0
:
failure
=
et
.
Element
(
"failure"
,
attrib
=
{
"message"
:
"return code {}"
.
format
(
proc
.
returncode
)})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录