new file mode 100644
@@ -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()
@@ -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