Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
tp-qemu
提交
9181a587
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,发现更多精彩内容 >>
提交
9181a587
编写于
4月 29, 2016
作者:
X
Xu Tian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add memory reboot step in the end of hotplug/unplug test
Signed-off-by:
N
Xu Tian
<
xutian@redhat.com
>
上级
1b6a61bc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
26 deletion
+25
-26
qemu/tests/hotplug_mem.py
qemu/tests/hotplug_mem.py
+25
-26
未找到文件。
qemu/tests/hotplug_mem.py
浏览文件 @
9181a587
...
...
@@ -31,40 +31,35 @@ class MemoryHotplugSimple(MemoryHotplugTest):
args
=
(
self
.
test
,
self
.
params
,
self
.
env
,
self
.
params
[
"sub_type"
])
bg_test
=
BackgroundTest
(
run_virt_sub_test
,
args
)
bg_test
.
start
()
wait_for
(
bg_test
.
is_alive
,
timeout
=
6
0
)
wait_for
(
bg_test
.
is_alive
,
first
=
10
,
step
=
3
,
timeout
=
10
0
)
return
bg_test
def
restore_memory
(
self
,
origin_vm
,
post_vm
):
mem_devs_post
=
post_vm
.
params
.
objects
(
"mem_devs"
)
mem_devs_origin
=
origin_vm
.
params
.
objects
(
"mem_devs"
)
if
len
(
mem_devs_post
)
!=
len
(
mem_devs_origin
):
if
len
(
mem_devs_origin
)
>
len
(
mem_devs_post
):
mem_devs
=
set
(
mem_devs_origin
)
-
set
(
mem_devs_post
)
vm
,
operation
=
post_vm
,
"hotplug"
else
:
mem_devs
=
set
(
mem_devs_post
)
-
set
(
mem_devs_origin
)
vm
,
operation
=
origin_vm
,
"unplug"
func
=
getattr
(
self
,
"%s_memory"
%
operation
)
for
mem_dev
in
mem_devs
:
func
(
vm
,
mem_dev
)
self
.
check_vm_memory
(
vm
)
def
restore_memory
(
self
,
pre_vm
,
post_vm
):
mem_devs_post
=
set
(
post_vm
.
params
.
objects
(
"mem_devs"
))
mem_devs_origin
=
set
(
pre_vm
.
params
.
objects
(
"mem_devs"
))
if
mem_devs_post
==
mem_devs_origin
:
return
if
len
(
mem_devs_origin
)
>
len
(
mem_devs_post
):
mem_devs
=
mem_devs_origin
-
mem_devs_post
vm
,
operation
=
post_vm
,
"hotplug"
elif
len
(
mem_devs_origin
)
<
len
(
mem_devs_post
):
mem_devs
=
mem_devs_post
-
mem_devs_origin
vm
,
operation
=
pre_vm
,
"unplug"
func
=
getattr
(
self
,
"%s_memory"
%
operation
)
map
(
lambda
x
:
func
(
vm
,
x
),
mem_devs
)
def
get_mem_by_name
(
self
,
vm
,
name
):
"""
Return memory object and pc-dimm devices by given name
"""
devices
=
[]
for
dtype
in
[
"mem"
,
"dimm"
]:
dev_qid
=
"%s-%s"
%
(
dtype
,
name
)
devs
=
vm
.
devices
.
get_by_qid
(
dev_qid
)
if
devs
:
devices
.
append
(
devs
[
0
])
return
devices
dev_ids
=
map
(
lambda
x
:
"-"
.
join
([
x
,
name
]),
[
"mem"
,
"dimm"
])
deivces
=
filter
(
None
,
map
(
vm
.
devices
.
get_by_qid
,
dev_ids
))
return
[
_
[
0
]
for
_
in
devices
]
def
start_test
(
self
):
operation
=
self
.
params
[
"operation"
]
target_mem
=
self
.
params
[
"target_mem"
]
try
:
target_mem
=
self
.
params
[
"target_mem"
]
operation
=
self
.
params
[
"operation"
]
vm
=
self
.
env
.
get_vm
(
self
.
params
[
"main_vm"
])
if
self
.
params
.
get
(
"stage"
)
==
"before"
:
self
.
run_sub_test
()
...
...
@@ -78,15 +73,18 @@ class MemoryHotplugSimple(MemoryHotplugTest):
if
self
.
params
.
get
(
"stage"
)
==
"during"
:
sub_test
=
self
.
run_background_test
()
func
(
vm
,
target_mem
)
self
.
check_memory
(
vm
)
if
self
.
params
.
get
(
"stage"
)
==
"during"
:
test_timeout
=
float
(
self
.
params
.
get
(
"sub_test_timeout"
,
3600
))
sub_test
.
join
(
timeout
=
test_timeout
)
if
self
.
params
.
get
(
"stage"
)
==
"after"
:
self
.
run_sub_test
()
post_vm
=
self
.
env
.
get_vm
(
self
.
params
[
"main_vm"
])
self
.
restore_memory
(
vm
,
post_vm
)
self
.
restore_memory
(
vm
,
self
.
env
.
get_vm
(
self
.
params
[
'main_vm'
]))
finally
:
self
.
close_sessions
()
vm
=
self
.
env
.
get_vm
(
self
.
params
[
"main_vm"
])
vm
.
verify_alive
()
vm
.
reboot
()
@
step_engine
.
context_aware
...
...
@@ -100,6 +98,7 @@ def run(test, params, env):
5) Check no calltrace in guest/host dmesg
6) Hotplug/unplug memory device
7) Run sub test after plug/unplug memory device
8) Restore VM and reboot guest
:param test: QEMU test object
:param params: Dictionary with the test parameters
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录