Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-qemu
提交
8f52e0c1
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,发现更多精彩内容 >>
未验证
提交
8f52e0c1
编写于
11月 09, 2017
作者:
X
Xu Han
提交者:
GitHub
11月 09, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1127 from hereischen/windows
usb_device_check: add windows test support
上级
37077ac7
12fe512d
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
47 addition
and
15 deletion
+47
-15
qemu/tests/cfg/usb_device_check.cfg
qemu/tests/cfg/usb_device_check.cfg
+20
-6
qemu/tests/usb_common.py
qemu/tests/usb_common.py
+22
-7
qemu/tests/usb_device_check.py
qemu/tests/usb_device_check.py
+5
-2
未找到文件。
qemu/tests/cfg/usb_device_check.cfg
浏览文件 @
8f52e0c1
...
...
@@ -6,13 +6,27 @@
usbs = "usbtest"
usb_bus = "usbtest.0"
cmd_timeout = 300
chk_usb_info_cmd = "lsusb -v"
type = usb_device_check
# usb device info name
usb-hub = "QEMU USB Hub"
usb-mouse = "QEMU USB Mouse"
usb-kbd = "QEMU USB Keyboard"
usb-tablet = "QEMU USB Tablet"
chk_usb_info_cmd = "lsusb -v"
# usb device info for qemu
usb_hub_for_qemu = "QEMU USB Hub"
usb_mouse_for_qemu = "QEMU USB Mouse"
usb_kbd_for_qemu = "QEMU USB Keyboard"
usb_tablet_for_qemu = "QEMU USB Tablet"
# usb device info for Linux guest
usb_hub_for_guest = "QEMU USB Hub"
usb_mouse_for_guest = "QEMU USB Mouse"
usb_kbd_for_guest = "QEMU USB Keyboard"
usb_tablet_for_guest = "QEMU USB Tablet"
Windows:
chk_usb_info_cmd = 'wmic path Win32_USBControllerDevice get Dependent | find "USB"'
# usb device info for Windows guest
usb_hub_for_guest = "VID_0409&PID_55AA"
# they are same in Windows
usb_mouse_for_guest = "VID_0627&PID_0001"
usb_kbd_for_guest = "VID_0627&PID_0001"
usb_tablet_for_guest = "VID_0627&PID_0001"
# usb controllers
variants:
...
...
qemu/tests/usb_common.py
浏览文件 @
8f52e0c1
...
...
@@ -2,6 +2,7 @@ try:
import
simplejson
as
json
except
ImportError
:
import
json
import
logging
from
collections
import
OrderedDict
...
...
@@ -30,23 +31,30 @@ def parse_usb_topology(params):
return
parsed_devs
def
collect_usb_dev
(
params
,
vm
,
parsed_devs
):
def
collect_usb_dev
(
params
,
vm
,
parsed_devs
,
suffix
):
"""
Collect usb device information of parsed_devs.
:param params: Dictionary with the test parameters.
:param vm: Virtual machine object.
:param parsed_devs: A list of parsed usb devices.
:return: A list of tuple contains (id, type, port) of a
usb device.
:params suffix: A string to read different cfg,
choose from("for_monitor", "for_guest")
:return: A list of list contains information of usb devices for
verification,[id(eg.d0), info(eg.usb-hub), port(eg.1)]
the info will change based on suffix.
"""
def
_change_dev_info_key
(
parsed_type
,
suffix
):
info_key
=
parsed_type
.
replace
(
"-"
,
"_"
)
return
"_"
.
join
([
info_key
,
suffix
])
devs
=
[]
for
parsed_dev
in
parsed_devs
:
key
=
list
(
parsed_dev
.
keys
())[
0
]
usb_dev_id
=
"usb-%s"
%
key
[
9
:]
usb_dev_
type
=
params
[
parsed_dev
[
key
]
]
usb_dev_
info
=
params
[
_change_dev_info_key
(
parsed_dev
[
key
],
suffix
)
]
usb_dev_port
=
str
(
vm
.
devices
.
get
(
usb_dev_id
).
get_param
(
"port"
))
devs
.
append
(
(
usb_dev_id
,
usb_dev_type
,
usb_dev_port
)
)
devs
.
append
(
[
usb_dev_id
,
usb_dev_info
,
usb_dev_port
]
)
return
devs
...
...
@@ -107,18 +115,25 @@ def verify_usb_device_in_guest(params, session, devs):
# each dev must in the output
for
dev
in
devs
:
if
dev
[
1
]
not
in
output
:
logging
.
info
(
"%s does not exist"
)
return
False
# match number of devices
dev_list
=
[
dev
[
1
]
for
dev
in
devs
]
dev_nums
=
dict
((
i
,
dev_list
.
count
(
i
))
for
i
in
dev_list
)
for
k
,
v
in
dev_nums
.
items
():
if
output
.
count
(
k
)
!=
v
:
logging
.
info
(
"the number of %s is %s"
%
(
k
,
v
))
count
=
output
.
count
(
k
)
if
count
!=
v
:
logging
.
info
(
"expected %s %s, got %s in the guest"
%
(
v
,
k
,
count
))
return
False
return
True
res
=
utils_misc
.
wait_for
(
_verify_guest_usb
,
float
(
params
[
"cmd_timeout"
]),
text
=
"wait for getting guest usb devices info"
)
step
=
5.0
,
text
=
"wait for getting guest usb devices info"
)
if
res
:
return
(
True
,
"all given devices are verified in the guest"
)
...
...
qemu/tests/usb_device_check.py
浏览文件 @
8f52e0c1
...
...
@@ -37,13 +37,16 @@ def run(test, params, env):
vm
=
env
.
get_vm
(
params
[
"main_vm"
])
vm
.
verify_alive
()
devs
=
collect_usb_dev
(
params
,
vm
,
parsed_devs
)
# collect usb dev information for qemu check
devs
=
collect_usb_dev
(
params
,
vm
,
parsed_devs
,
"for_qemu"
)
error_context
.
context
(
"verify usb devices information in
monitor
..."
,
error_context
.
context
(
"verify usb devices information in
qemu
..."
,
logging
.
info
)
result
,
output
=
verify_usb_device_in_monitor_qtree
(
vm
,
devs
)
_check_test_step_result
(
result
,
output
)
# collect usb dev information for guest check
devs
=
collect_usb_dev
(
params
,
vm
,
parsed_devs
,
"for_guest"
)
login_timeout
=
int
(
params
.
get
(
"login_timeout"
,
360
))
session
=
vm
.
wait_for_login
(
timeout
=
login_timeout
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录