Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-qemu
提交
17d7e612
T
tp-qemu
项目概览
openeuler
/
tp-qemu
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
tp-qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
17d7e612
编写于
10月 10, 2016
作者:
S
suqinhuang
提交者:
GitHub
10月 10, 2016
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #757 from suqinhuang/check_rng_driver
Add driver status check in rng_bat
上级
8b413429
2cd5584d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
5 deletion
+40
-5
qemu/tests/cfg/rng_bat.cfg
qemu/tests/cfg/rng_bat.cfg
+3
-0
qemu/tests/rng_bat.py
qemu/tests/rng_bat.py
+37
-5
未找到文件。
qemu/tests/cfg/rng_bat.cfg
浏览文件 @
17d7e612
...
...
@@ -11,6 +11,9 @@
read_rng_cmd = "X:\random_%PROCESSOR_ARCHITECTURE%.exe"
driver_name = "viorng"
rng_data_rex = "0x\w"
driver_id_cmd = X:\devcon\wxp_x86\devcon.exe find * | find "VirtIO"
driver_check_cmd = X:\devcon\wxp_x86\devcon.exe status @DRIVER_ID
driver_id_pattern = "(.*?):.*?VirtIO RNG Device"
Linux:
session_cmd_timeout = 360
read_rng_cmd = "dd if=/dev/hwrng bs=1 count=10 2>/dev/null|hexdump"
...
...
qemu/tests/rng_bat.py
浏览文件 @
17d7e612
...
...
@@ -46,17 +46,42 @@ def run(test, params, env):
vol
=
"%s:"
%
vol
return
cmd
.
replace
(
"X:"
,
vol
)
def
check_driver_status
(
session
,
check_cmd
,
driver_id
):
"""
:param session: VM session
:param check_cmd: cmd to check driver status
:param driver_id: driver id
"""
check_cmd
=
check_cmd
.
replace
(
"DRIVER_ID"
,
driver_id
)
status
,
output
=
session
.
cmd_status_output
(
check_cmd
)
if
"disabled"
in
output
:
raise
exceptions
.
TestFail
(
"Driver is disable"
)
def
get_driver_id
(
session
,
cmd
,
pattern
):
"""
:param session: VM session
:param cmd: cmd to get driver id
:param pattern: driver id pattern
"""
output
=
session
.
cmd_output
(
cmd
)
driver_id
=
re
.
findall
(
pattern
,
output
)
if
not
driver_id
:
raise
exceptions
.
TestFail
(
"Didn't find driver info from guest %s"
%
output
)
driver_id
=
driver_id
[
0
]
driver_id
=
'^&'
.
join
(
driver_id
.
split
(
'&'
))
return
driver_id
rng_data_rex
=
params
.
get
(
"rng_data_rex"
,
r
".*"
)
dev_file
=
params
.
get
(
"filename_passthrough"
)
timeout
=
float
(
params
.
get
(
"login_timeout"
,
360
))
rng_dll_register_cmd
=
params
.
get
(
"rng_dll_register_cmd"
)
read_rng_timeout
=
float
(
params
.
get
(
"read_rng_timeout"
,
"360"
))
cmd_timeout
=
float
(
params
.
get
(
"session_cmd_timeout"
,
"360"
))
error_context
.
context
(
"Boot guest with virtio-rng device"
,
logging
.
info
)
driver_name
=
params
[
"driver_name"
]
vm
=
env
.
get_vm
(
params
[
"main_vm"
])
vm
.
verify_alive
()
vm_pid
=
vm
.
get_pid
()
driver_name
=
params
[
"driver_name"
]
if
dev_file
:
error_context
.
context
(
"Check '%s' used by qemu"
%
dev_file
,
...
...
@@ -69,14 +94,21 @@ def run(test, params, env):
if
params
[
"os_type"
]
==
"windows"
:
utils_test
.
qemu
.
setup_win_driver_verifier
(
driver_name
,
vm
,
timeout
)
error_context
.
context
(
"Check driver status"
,
logging
.
info
)
session
=
vm
.
wait_for_login
(
timeout
=
timeout
)
driver_id_cmd
=
set_winutils_letter
(
params
.
get
(
"driver_id_cmd"
),
session
,
params
)
driver_id
=
get_driver_id
(
session
,
driver_id_cmd
,
params
[
"driver_id_pattern"
])
check_driver_status
(
session
,
params
[
"driver_check_cmd"
],
driver_id
)
else
:
error_context
.
context
(
"verify virtio-rng device driver"
,
logging
.
info
)
session
=
vm
.
wait_for_login
(
timeout
=
timeout
)
verify_cmd
=
params
[
"driver_verifier_cmd"
]
try
:
output
=
session
.
cmd_output
(
verify_cmd
,
timeout
=
cmd_timeout
)
output
=
session
.
cmd_output
_safe
(
verify_cmd
,
timeout
=
cmd_timeout
)
except
aexpect
.
ShellTimeoutError
:
err
=
"
cat cmd timeout, pls check if it's a product bug"
err
=
"
%s timeout, pls check if it's a product bug"
%
verify_cmd
raise
exceptions
.
TestFail
(
err
)
if
not
re
.
search
(
r
"%s"
%
driver_name
,
output
,
re
.
M
):
...
...
@@ -87,7 +119,6 @@ def run(test, params, env):
error_context
.
context
(
"Read virtio-rng device to get random number"
,
logging
.
info
)
session
=
vm
.
wait_for_login
(
timeout
=
timeout
)
read_rng_cmd
=
set_winutils_letter
(
params
.
get
(
"read_rng_cmd"
),
session
,
params
)
if
rng_dll_register_cmd
:
...
...
@@ -98,3 +129,4 @@ def run(test, params, env):
if
len
(
re
.
findall
(
rng_data_rex
,
output
,
re
.
M
))
<
2
:
raise
exceptions
.
TestFail
(
"Unable to read random numbers from"
"guest: %s"
%
output
)
session
.
close
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录