Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-qemu
提交
8ba0d8ab
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,发现更多精彩内容 >>
提交
8ba0d8ab
编写于
3月 03, 2020
作者:
N
nanliu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
virtio_serial:Remove pending watches after virtserialport unplug
Signed-off-by:
N
Nana Liu
<
nanliu@redhat.com
>
上级
b082e0de
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
69 addition
and
0 deletion
+69
-0
qemu/tests/cfg/virtio_port_hotplug.cfg
qemu/tests/cfg/virtio_port_hotplug.cfg
+6
-0
qemu/tests/chardev_remove_pending_watches.py
qemu/tests/chardev_remove_pending_watches.py
+63
-0
未找到文件。
qemu/tests/cfg/virtio_port_hotplug.cfg
浏览文件 @
8ba0d8ab
...
...
@@ -104,6 +104,12 @@
#Port number 0 on virtio-serial devices reserved for
#virtconsole devices for backward compatibility
virtio_serial_ports = 30
- remove_pending_watches:
type = chardev_remove_pending_watches
serials += " vs1"
serial_type_vs1 = "virtserialport"
file_transfer_serial_port = "vs1"
filesize = 2000
- hotplug_various_chardev:
type = virtio_serial_various_chardev_hotplug
serials = ""
...
...
qemu/tests/chardev_remove_pending_watches.py
0 → 100644
浏览文件 @
8ba0d8ab
import
aexpect
from
virttest
import
error_context
from
virttest
import
utils_test
from
virttest.utils_virtio_port
import
VirtioPortTest
from
qemu.tests.virtio_serial_file_transfer
import
generate_data_file
@
error_context
.
context_aware
def
run
(
test
,
params
,
env
):
"""
Remove pending watches after virtserialport unplug.
1) Start guest with virtio serial device(s).
2) Open the chardev on the host
3) Send 2g file from guest to host
4) Hot-unplug the port on the host
5) After step 4, read transferred data on host
6) Guest has no crash or panic
:param test: QEMU test object.
:param params: Dictionary with the test parameters.
:param env: Dictionary with test environment.
"""
os_type
=
params
[
"os_type"
]
file_size
=
params
.
get_numeric
(
"filesize"
)
guest_dir
=
params
.
get
(
"guest_script_folder"
,
'/var/tmp/'
)
port_name
=
params
[
"file_transfer_serial_port"
]
virtio_test
=
VirtioPortTest
(
test
,
env
,
params
)
(
vm
,
guest_worker
,
port
)
=
virtio_test
.
get_vm_with_single_port
()
port
.
open
()
session
=
vm
.
wait_for_login
()
guest_file_name
=
generate_data_file
(
guest_dir
,
file_size
,
session
)
if
os_type
==
"windows"
:
vport_name
=
'
\\\\
.
\\
'
+
port_name
guest_file_name
=
guest_file_name
.
replace
(
"/"
,
""
)
guest_send_cmd
=
"copy %s > con %s"
%
(
guest_file_name
,
vport_name
)
driver_name
=
params
[
"driver_name"
]
session
=
utils_test
.
qemu
.
windrv_check_running_verifier
(
session
,
vm
,
test
,
driver_name
)
else
:
vport_name
=
'/dev/virtio-ports/%s'
%
port_name
guest_send_cmd
=
"cat %s > %s"
%
(
guest_file_name
,
vport_name
)
try
:
session
.
cmd
(
guest_send_cmd
)
# large data transfer won't exit because of small ringbuf
except
aexpect
.
ShellTimeoutError
:
pass
try
:
port_unplug
=
vm
.
devices
.
get
(
port_name
)
vm
.
devices
.
simple_unplug
(
port_unplug
,
vm
.
monitor
)
if
port
.
sock
.
recv
(
4096
)
is
None
:
test
.
fail
(
"Host can't receive data !"
)
finally
:
clean_cmd
=
params
[
'clean_cmd'
]
port
.
close
()
session
.
cmd
(
'%s %s'
%
(
clean_cmd
,
guest_file_name
))
session
.
close
()
vm
.
verify_alive
()
vm
.
verify_kernel_crash
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录