提交 5176c3c9 编写于 作者: X Xu Tian 提交者: Lucas Meneghel Rodrigues

qemu.tests: new test monitor_cmds_check

Check some advance commands not include qemu-kvm package

changes from v1:
    1. instead private code with function in framework
    2. fixed typo
    3. calll monitor.verify_supported_cmds driectly to check commands
    unavaliable
changes from v2:
    1. add notes in docstring
    2. instead filter function
Signed-off-by: NXu Tian <xutian@redhat.com>
上级 0a0df94d
......@@ -97,7 +97,10 @@ variants:
required_packages = "qemu-kvm-rhev"
package_check_cmd_qemu-kvm-rhev = "rpm -q PACKNAME"
package_version_pattern = "PACKNAME-([\d\.]+)"
monitor_cmds_check.qmp:
black_cmds = "block-stream block-job-cancel block-job-set-speed transaction blockdev-snapshot-sync __com.redhat_drive-mirror __com.redhat_block-reopen"
monitor_cmds_check.human:
black_cmds = "block_stream block_job_cancel block_job_set_speed transaction blockdev-snapshot-sync __com.redhat_drive_mirror __com.redhat_block_reopen"
variants:
- 1:
host_kernel_ver_str += ".1"
......@@ -132,6 +135,10 @@ variants:
cpu_model_flags += ",hv_relaxed"
virtio_net:
vhost = "vhost=on"
monitor_cmds_check.qmp:
black_cmds = "block-stream block-job-cancel block-job-set-speed drive-mirror block-job-complete block-job-pause block-job-resume"
monitor_cmds_check.human:
black_cmds = "block_stream block_job_cancel block_job_set_speed drive_mirror block_job_complete block_job_pause block_job_resume"
variants:
- 0:
host_kernel_ver_str += ".0"
......
# Notes:
# Please run this test with autotest $virttest/qemu/control.kernel-version
# to ensure it run only on requried package installed on host;
- monitor_cmds_check:
type = monitor_cmds_check
only Host_RHEL.6, Host_RHEL.7
start_vm = yes
verify_disk_image_bootable = no
monitors = "human1 qmp1"
monitor_type_human1 = "human"
monitor_type_qmp1 = "qmp"
required_packages = "qemu-kvm"
package_check_cmd_qemu-kvm = "rpm -q qemu-kvm"
package_version_pattern_qemu-kvm = "qemu-kvm-([\d\.]+)"
variants:
- qmp:
main_monitor = "qmp1"
- human:
main_monitor = "human1"
import logging
from autotest.client.shared import error
from virttest import qemu_monitor
@error.context_aware
def run_monitor_cmds_check(test, params, env):
"""
monitor_cmds_check test:
1). bootup vm with human and qmp monitor
2). check commands in black_list is unavaliable in monitor
@param test: Qemu test object
@param params: Dictionary with the test parameters
@param env: Dictionary with test environment.
Notes:
Please run this test with qemu/control.kernel-version to ensure it
only run when requried package installed;
"""
def is_supported(cmd):
try:
vm.monitor.verify_supported_cmd(cmd)
return True
except qemu_monitor.MonitorNotSupportedCmdError:
return False
vm = env.get_vm(params["main_vm"])
vm.verify_alive()
protocol = vm.monitor.protocol
black_cmds = params.get("black_cmds", "").split()
error.context("Verify black commands are unavaliable in '%s' monitor"
% protocol, logging.info)
logging.info("Black commands: %s" % black_cmds)
cmds = [cmd for cmd in black_cmds if is_supported(cmd)]
if cmds:
msg = "Unexpected commands %s found in %s monitor" % (cmds, protocol)
raise error.TestFail(msg)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册