Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-qemu
提交
f0c0a030
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
f0c0a030
编写于
4月 03, 2020
作者:
Y
Yanan Fu
提交者:
GitHub
4月 03, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2081 from michiboo/chardev_free
add testcase for chardev a free port value
上级
d4c31516
d545f200
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
64 addition
and
0 deletion
+64
-0
qemu/tests/cfg/chardev_free_port.cfg
qemu/tests/cfg/chardev_free_port.cfg
+9
-0
qemu/tests/chardev_free_port.py
qemu/tests/chardev_free_port.py
+55
-0
未找到文件。
qemu/tests/cfg/chardev_free_port.cfg
0 → 100644
浏览文件 @
f0c0a030
- chardev_free_port:
only Linux
type = chardev_free_port
vms = 'vm0 vm1'
start_vm = no
image_snapshot = on
extra_chardevs = "channel1"
chardev_backend_channel1 = "tcp_socket"
qemu_force_use_drive_expression = yes
qemu/tests/chardev_free_port.py
0 → 100644
浏览文件 @
f0c0a030
import
logging
from
virttest
import
error_context
,
env_process
from
virttest
import
utils_misc
from
qemu.tests.virtio_console
import
add_chardev
@
error_context
.
context_aware
def
run
(
test
,
params
,
env
):
"""
qemu should try to find a free port value by to=<port> with unix socket and tcp options:
1) boot guest with socket 'host=127.0.0.1,port=num'
2) query chardev and check port number
3) boot another guest with socket 'host=127.0.0.1,port=num,to=num+'
4) query chardev and check port number, should different from 2)
:param test: QEMU test object
:param params: Dictionary with the test parameters
:param env: Dictionary with test environment.
"""
chardev_infos
=
[]
vms
=
params
.
get
(
"vms"
).
split
()
_vm
=
env
.
get_vm
(
vms
[
0
])
char_device
=
add_chardev
(
_vm
,
params
)[
0
]
chardev_params
=
char_device
.
params
for
vm_ind
,
vm
in
enumerate
(
vms
):
if
vm_ind
==
1
:
host
=
chardev_params
[
'host'
]
chardev_to
=
utils_misc
.
find_free_ports
(
int
(
chardev_params
[
'port'
])
+
1
,
6000
,
1
,
host
)
chardev_params
[
'to'
]
=
str
(
chardev_to
[
0
])
extra_params
=
' '
+
char_device
.
cmdline
()
params
[
'extra_params_%s'
%
vm
]
=
params
.
get
(
'extra_params'
,
''
)
+
extra_params
params
[
'start_vm_%s'
%
vm
]
=
"yes"
env_process
.
preprocess
(
test
,
params
,
env
)
_vm
=
env
.
get_vm
(
vm
)
chardev_infos
.
append
(
_vm
.
monitor
.
info
(
"chardev"
))
_port
,
_to
=
int
(
chardev_params
[
'port'
]),
int
(
chardev_params
[
'to'
])
for
char_ind
,
chardevs
in
enumerate
(
chardev_infos
):
in_chardev
=
False
for
chardev
in
chardevs
:
if
chardev
[
'label'
]
==
chardev_params
[
'id'
]:
tmp_pnum
=
int
(
chardev
[
'filename'
].
split
(
':'
)[
-
1
].
split
(
','
)[
0
])
error_context
.
context
(
"Get port %d for vm%d from monitor"
%
(
tmp_pnum
,
char_ind
),
logging
.
info
)
break
if
char_ind
==
0
:
error_context
.
context
(
"The expect port for vm%d is %d"
%
(
char_ind
,
_port
),
logging
.
info
)
if
tmp_pnum
==
_port
:
in_chardev
=
True
else
:
error_context
.
context
(
"The expect port for vm%d is in [%d, %d]"
%
(
char_ind
,
_port
+
1
,
_to
),
logging
.
info
)
if
tmp_pnum
>
_port
and
tmp_pnum
<=
_to
:
in_chardev
=
True
assert
in_chardev
is
True
,
'The actual port does not match with the expect port in VM %d'
%
char_ind
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录