Change guest state by monitor cmd, verify guest status, and try to login guest by network. Changes from v1: - use new method verify_status() to check vm status Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> --- client/tests/kvm/tests/stop_continue.py | 43 +++++++++++++++++++++++++++++++ client/tests/kvm/tests_base.cfg.sample | 4 +++ 2 files changed, 47 insertions(+), 0 deletions(-) create mode 100644 client/tests/kvm/tests/stop_continue.py diff --git a/client/tests/kvm/tests/stop_continue.py b/client/tests/kvm/tests/stop_continue.py new file mode 100644 index 0000000..62df48e --- /dev/null +++ b/client/tests/kvm/tests/stop_continue.py @@ -0,0 +1,43 @@ +import logging +from autotest_lib.client.common_lib import error + + +def run_stop_continue(test, params, env): + """ + Suspend a running Virtual Machine and verify its state. + + 1) Boot the vm + 2) Suspend the vm through stop command + 3) Verify the state through info status command + 4) Check is the ssh session to guest is still responsive, + if succeed, fail the test. + + @param test: Kvm test object + @param params: Dictionary with the test parameters + @param env: Dictionary with test environment. + """ + vm = env.get_vm(params["main_vm"]) + vm.verify_alive() + timeout = float(params.get("login_timeout", 240)) + session = vm.wait_for_login(timeout=timeout) + + try: + logging.info("Stop the VM") + vm.monitor.cmd("stop") + logging.info("Verifying the status of VM is 'paused'") + vm.verify_status("paused") + + logging.info("Check the session is responsive") + if session.is_responsive(): + raise error.TestFail("Session is still responsive after stop") + + logging.info("Try to resume the guest") + vm.monitor.cmd("cont") + logging.info("Verifying the status of VM is 'running'") + vm.verify_status("running") + + logging.info("Try to re-log into guest") + session = vm.wait_for_login(timeout=timeout) + + finally: + session.close() diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample index 78c84c6..1e659bc 100644 --- a/client/tests/kvm/tests_base.cfg.sample +++ b/client/tests/kvm/tests_base.cfg.sample @@ -261,6 +261,10 @@ variants: - systemtap: test_control_file = systemtap.control + - stop_continue: + type = stop_continue + kill_vm_on_error = yes + - linux_s3: install setup unattended_install.cdrom only Linux type = linux_s3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html