Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Test Developertest
提交
437f85d8
T
Test Developertest
项目概览
OpenHarmony
/
Test Developertest
10 个月 前同步成功
通知
2
Star
23
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Test Developertest
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
437f85d8
编写于
4月 21, 2021
作者:
O
openharmony_ci
提交者:
Gitee
4月 21, 2021
浏览文件
操作
浏览文件
下载
差异文件
!17 modify concurrent execution test cases
Merge pull request !17 from Hanwb/master
上级
4d4936f7
274b5ef9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
54 addition
and
66 deletion
+54
-66
src/core/driver/lite_driver.py
src/core/driver/lite_driver.py
+54
-66
未找到文件。
src/core/driver/lite_driver.py
浏览文件 @
437f85d8
...
...
@@ -60,17 +60,14 @@ class LiteUnitTest(IDriver):
lite_device
=
None
result
=
None
@
classmethod
def
__check_failed__
(
cls
,
msg
):
cls
.
log
.
error
(
"check failed {}"
.
format
(
msg
))
def
__check_failed__
(
self
,
msg
):
self
.
log
.
error
(
"check failed {}"
.
format
(
msg
))
return
None
@
classmethod
def
__check_environment__
(
cls
,
device_options
):
def
__check_environment__
(
self
,
device_options
):
pass
@
classmethod
def
__check_config__
(
cls
,
config
):
def
__check_config__
(
self
,
config
):
"""
1. check serial protocol
2. login device
...
...
@@ -78,10 +75,9 @@ class LiteUnitTest(IDriver):
:param config: serial device
:return:
"""
cls
.
log
.
error
(
"Lite driver check config:{}"
.
format
(
config
))
self
.
log
.
error
(
"Lite driver check config:{}"
.
format
(
config
))
@
classmethod
def
__execute__
(
cls
,
request
):
def
__execute__
(
self
,
request
):
"""
1. select test case by subsystem, module, suite
...
...
@@ -92,73 +88,70 @@ class LiteUnitTest(IDriver):
test_case,test_level,test_case_dir
:return:
"""
cls
.
log
.
debug
(
"Test suite FilePath: %s"
%
self
.
log
.
debug
(
"Test suite FilePath: %s"
%
request
.
root
.
source
.
source_file
)
cls
.
lite_device
=
request
.
config
.
environment
.
devices
[
0
]
cls
.
lite_device
.
connect
()
if
not
cls
.
_before_execute_test
():
cls
.
log
.
error
(
"open test dir failed"
)
self
.
lite_device
=
request
.
config
.
environment
.
devices
[
0
]
self
.
lite_device
.
connect
()
if
not
self
.
_before_execute_test
():
self
.
log
.
error
(
"open test dir failed"
)
return
cls
.
log
.
debug
(
"open test dir success"
)
if
cls
.
_execute_test
(
request
)
==
""
:
cls
.
log
.
error
(
"execute test command failed"
)
self
.
log
.
debug
(
"open test dir success"
)
if
self
.
_execute_test
(
request
)
==
""
:
self
.
log
.
error
(
"execute test command failed"
)
return
cls
.
log
.
info
(
"execute test command success"
)
if
not
cls
.
_after_execute_test
(
request
):
cls
.
log
.
error
(
"after execute test failed"
)
self
.
log
.
info
(
"execute test command success"
)
if
not
self
.
_after_execute_test
(
request
):
self
.
log
.
error
(
"after execute test failed"
)
return
cls
.
log
.
info
(
"lite device execute request success"
)
self
.
log
.
info
(
"lite device execute request success"
)
@
classmethod
def
_before_execute_test
(
cls
):
def
_before_execute_test
(
self
):
"""
need copy test case to nfs dir
:param request: nfs dir, test case path
:return:
"""
cls
.
nfs_dir
=
\
self
.
nfs_dir
=
\
UserConfigManager
().
get_user_config
(
"NFS"
).
get
(
"host_dir"
)
if
cls
.
nfs_dir
==
""
:
cls
.
log
.
error
(
"no configure for nfs directory"
)
if
self
.
nfs_dir
==
""
:
self
.
log
.
error
(
"no configure for nfs directory"
)
return
False
_
,
status
,
_
=
\
cls
.
lite_device
.
execute_command_with_timeout
(
"cd /{}"
.
format
(
self
.
lite_device
.
execute_command_with_timeout
(
"cd /{}"
.
format
(
UserConfigManager
().
get_user_config
(
"NFS"
).
get
(
"board_dir"
)),
case_type
=
DeviceTestType
.
lite_cpp_test
)
if
not
status
:
cls
.
log
.
error
(
"pre execute command failed"
)
self
.
log
.
error
(
"pre execute command failed"
)
return
False
cls
.
log
.
info
(
"pre execute command success"
)
self
.
log
.
info
(
"pre execute command success"
)
return
True
@
classmethod
def
_execute_test
(
cls
,
request
):
def
_execute_test
(
self
,
request
):
test_case
=
request
.
root
.
source
.
source_file
cls
.
config
=
request
.
config
test_para
=
cls
.
_get_test_para
(
cls
.
config
.
testcase
,
cls
.
config
.
testlevel
)
self
.
config
=
request
.
config
test_para
=
self
.
_get_test_para
(
self
.
config
.
testcase
,
self
.
config
.
testlevel
)
case_name
=
os
.
path
.
basename
(
test_case
)
if
os
.
path
.
exists
(
os
.
path
.
join
(
cls
.
nfs_dir
,
case_name
)):
os
.
remove
(
os
.
path
.
join
(
cls
.
nfs_dir
,
case_name
))
if
os
.
path
.
exists
(
os
.
path
.
join
(
self
.
nfs_dir
,
case_name
)):
os
.
remove
(
os
.
path
.
join
(
self
.
nfs_dir
,
case_name
))
result_name
=
case_name
+
".xml"
result_file
=
os
.
path
.
join
(
cls
.
nfs_dir
,
result_name
)
result_file
=
os
.
path
.
join
(
self
.
nfs_dir
,
result_name
)
if
os
.
path
.
exists
(
result_file
):
os
.
remove
(
result_file
)
shutil
.
copyfile
(
test_case
,
os
.
path
.
join
(
cls
.
nfs_dir
,
case_name
))
cls
.
lite_device
.
execute_command_with_timeout
(
shutil
.
copyfile
(
test_case
,
os
.
path
.
join
(
self
.
nfs_dir
,
case_name
))
self
.
lite_device
.
execute_command_with_timeout
(
"chmod 777 {}"
.
format
(
case_name
),
case_type
=
DeviceTestType
.
lite_cpp_test
)
test_command
=
"./%s %s"
%
(
case_name
,
test_para
)
case_result
,
status
,
_
=
\
cls
.
lite_device
.
execute_command_with_timeout
(
self
.
lite_device
.
execute_command_with_timeout
(
test_command
,
case_type
=
DeviceTestType
.
lite_cpp_test
)
if
status
:
cls
.
log
.
info
(
"test case result:
\n
%s"
%
case_result
)
self
.
log
.
info
(
"test case result:
\n
%s"
%
case_result
)
return
cls
.
log
.
error
(
"failed case: %s"
%
test_case
)
self
.
log
.
error
(
"failed case: %s"
%
test_case
)
@
classmethod
def
_get_test_para
(
cls
,
testcase
,
testlevel
):
def
_get_test_para
(
self
,
testcase
,
testlevel
):
if
""
!=
testcase
and
""
==
testlevel
:
test_para
=
"%s=%s"
%
(
GTestConst
.
exec_para_filter
,
testcase
)
elif
""
==
testcase
and
""
!=
testlevel
:
...
...
@@ -168,15 +161,14 @@ class LiteUnitTest(IDriver):
test_para
=
""
return
test_para
@
classmethod
def
_after_execute_test
(
cls
,
request
):
def
_after_execute_test
(
self
,
request
):
"""
copy test result to result dir
:param request:
:return:
"""
if
request
.
config
is
None
:
cls
.
log
.
error
(
"test config is null"
)
self
.
log
.
error
(
"test config is null"
)
return
False
report_path
=
request
.
config
.
report_path
test_result
=
os
.
path
.
join
(
report_path
,
"result"
)
...
...
@@ -202,51 +194,47 @@ class LiteUnitTest(IDriver):
if
not
os
.
path
.
exists
(
test_result
):
os
.
mkdir
(
test_result
)
result_name
=
case_name
+
".xml"
result_file
=
os
.
path
.
join
(
cls
.
nfs_dir
,
result_name
)
if
not
cls
.
_check_xml_exist
(
result_name
):
cls
.
log
.
error
(
"result xml file %s not exist."
%
result_name
)
result_file
=
os
.
path
.
join
(
self
.
nfs_dir
,
result_name
)
if
not
self
.
_check_xml_exist
(
result_name
):
self
.
log
.
error
(
"result xml file %s not exist."
%
result_name
)
if
not
os
.
path
.
exists
(
result_file
):
cls
.
log
.
error
(
"file %s not exist."
%
result_file
)
self
.
log
.
error
(
"file %s not exist."
%
result_file
)
return
False
file_name
=
os
.
path
.
basename
(
result_file
)
final_result
=
os
.
path
.
join
(
test_result
,
file_name
)
shutil
.
copyfile
(
result_file
,
final_result
)
cls
.
log
.
info
(
"after execute test"
)
cls
.
lite_device
.
close
()
self
.
log
.
info
(
"after execute test"
)
self
.
lite_device
.
close
()
return
True
@
classmethod
def
_check_xml_exist
(
cls
,
xml_file
,
timeout
=
60
):
def
_check_xml_exist
(
self
,
xml_file
,
timeout
=
10
):
ls_command
=
\
"ls /%s"
%
\
UserConfigManager
().
get_user_config
(
"NFS"
).
get
(
"board_dir"
)
start_time
=
time
.
time
()
while
time
.
time
()
-
start_time
<
timeout
:
result
,
_
,
_
=
cls
.
lite_device
.
execute_command_with_timeout
(
result
,
_
,
_
=
self
.
lite_device
.
execute_command_with_timeout
(
command
=
ls_command
,
case_type
=
DeviceTestType
.
cpp_test_lite
,
timeout
=
5
,
receiver
=
None
)
if
xml_file
in
result
:
return
True
time
.
sleep
(
5
)
time
.
sleep
(
1
)
return
False
@
classmethod
def
show_help_info
(
cls
):
def
show_help_info
(
self
):
"""
show help info.
"""
cls
.
log
.
info
(
"this is test driver for cpp test"
)
self
.
log
.
info
(
"this is test driver for cpp test"
)
return
None
@
classmethod
def
show_driver_info
(
cls
):
def
show_driver_info
(
self
):
"""
show driver info.
"""
cls
.
log
.
info
(
"this is test driver for cpp test"
)
self
.
log
.
info
(
"this is test driver for cpp test"
)
return
None
@
classmethod
def
__result__
(
cls
):
def
__result__
(
self
):
pass
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录