Simple validation for vm.verify_kernel_crash()
Signed-off-by: Chris Evich <[email protected]>
---
libvirt/tests/cfg/kernel_panic.cfg | 7 ++++
libvirt/tests/kernel_panic.py | 54 ++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 0 deletions(-)
create mode 100644 libvirt/tests/cfg/kernel_panic.cfg
create mode 100644 libvirt/tests/kernel_panic.py
diff --git a/libvirt/tests/cfg/kernel_panic.cfg
b/libvirt/tests/cfg/kernel_panic.cfg
new file mode 100644
index 0000000..8b50132
--- /dev/null
+++ b/libvirt/tests/cfg/kernel_panic.cfg
@@ -0,0 +1,7 @@
+- kernel_panic:
+ type = kernel_panic
+ virt_test_type = libvirt
+ start_vm = "yes"
+ kill_unresponsive_vms = "yes"
+ take_regular_screendumps = "no"
+ panic_cmd = "echo -n c > /proc/sysrq-trigger"
diff --git a/libvirt/tests/kernel_panic.py b/libvirt/tests/kernel_panic.py
new file mode 100644
index 0000000..0d38057
--- /dev/null
+++ b/libvirt/tests/kernel_panic.py
@@ -0,0 +1,54 @@
+import logging
+from autotest.client.shared import error
+from virttest import virt_vm, aexpect, virsh
+
+def run_kernel_panic(test, params, env):
+ """
+ Verify various kernel panic methods
+
+ 1.Prepare test environment.
+ 2.Execute any needed setup commands
+ 3.Execute kernel panic command
+ 4.Verify panic was detected
+ 5.restore environment
+ """
+
+ vm_name = params.get("main_vm", "vm1")
+ vm = env.get_vm(vm_name)
+ if not vm.is_alive():
+ vm.start()
+
+ panic_cmd = params.get("panic_cmd", None)
+ status = None
+ output = None
+
+ # Setup environment
+ session = vm.wait_for_login()
+ # Subsequent logins should timeout quickly
+ vm.LOGIN_WAIT_TIMEOUT = 10
+
+ #run test case
+ try:
+ logging.info("Sending panic_cmd command: %s" % panic_cmd)
+ status, output = session.cmd_status_output(panic_cmd, timeout=5,
+ internal_timeout=5)
+ except aexpect.ShellTimeoutError:
+ pass # This is expected
+ except:
+ # This is unexpected
+ raise
+
+ try:
+ vm.verify_kernel_crash()
+ status = 1 # bad
+ except virt_vm.VMDeadKernelCrashError:
+ status = 0 # good
+
+ # Restore environment to stable state
+ session.close()
+ vm.serial_console.close()
+ virsh.destroy(vm_name)
+
+ #check status_error
+ if status:
+ raise error.TestFail("Panic command failed to cause panic")
--
1.7.1
_______________________________________________
Virt-test-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-test-devel