* [PATCH 1/2] KVM test: Create a verify_kernel_crash() VM method v3
@ 2011-03-18 20:58 Lucas Meneghel Rodrigues
2011-03-18 20:58 ` [PATCH 2/2] KVM test: Use verify_kernel_crash() on unattended install Lucas Meneghel Rodrigues
0 siblings, 1 reply; 2+ messages in thread
From: Lucas Meneghel Rodrigues @ 2011-03-18 20:58 UTC (permalink / raw)
To: autotest; +Cc: kvm
A method to verify guest kernel panics can be very
useful for a number of tests. Adapted from a function
present on virtio_console test, create VM.verify_kernel_crash()
and use it on unattended_install.
Changes from v1:
* According to mgoldish's comments, instead of using
read_nonblocking() and read_until_last_line_matches(),
use simply get_output(), and only throw an exception
at the time we have a full trace.
Changes from v3:
* Reimplementing the method on a less moronic fashion.
Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
---
client/tests/kvm/kvm_vm.py | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py
index 43ae79c..8114670 100755
--- a/client/tests/kvm/kvm_vm.py
+++ b/client/tests/kvm/kvm_vm.py
@@ -105,6 +105,15 @@ class VMDeadError(VMError):
(self.status, self.output))
+class VMDeadKernelCrashError(VMError):
+ def __init__(self, kernel_crash):
+ VMError.__init__(self, kernel_crash)
+ self.kernel_crash = kernel_crash
+
+ def __str__(self):
+ return ("VM is dead due to a kernel crash:\n%s" % self.kernel_crash)
+
+
class VMAddressError(VMError):
pass
@@ -1158,6 +1167,20 @@ class VM:
return not self.process or not self.process.is_alive()
+ def verify_kernel_crash(self):
+ """
+ Find kernel crash message on the VM serial console.
+
+ @raise: VMDeadKernelCrashError, in case a kernel crash message was
+ found.
+ """
+ data = self.serial_console.get_output()
+ match = re.search(r"BUG:.*---\[ end trace .* \]---", data,
+ re.DOTALL|re.MULTILINE)
+ if match is not None:
+ raise VMDeadKernelCrashError(match.group(0))
+
+
def get_params(self):
"""
Return the VM's params dict. Most modified params take effect only
--
1.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] KVM test: Use verify_kernel_crash() on unattended install
2011-03-18 20:58 [PATCH 1/2] KVM test: Create a verify_kernel_crash() VM method v3 Lucas Meneghel Rodrigues
@ 2011-03-18 20:58 ` Lucas Meneghel Rodrigues
0 siblings, 0 replies; 2+ messages in thread
From: Lucas Meneghel Rodrigues @ 2011-03-18 20:58 UTC (permalink / raw)
To: autotest; +Cc: kvm
With this we can fail the test much earlier if a guest
kernel panic happens, instead of waiting for the full
timeout to complete.
Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
---
client/tests/kvm/tests/unattended_install.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/tests/unattended_install.py b/client/tests/kvm/tests/unattended_install.py
index 7c6d845..4868053 100644
--- a/client/tests/kvm/tests/unattended_install.py
+++ b/client/tests/kvm/tests/unattended_install.py
@@ -16,6 +16,7 @@ def run_unattended_install(test, params, env):
"""
vm = env.get_vm(params["main_vm"])
vm.verify_alive()
+ vm.verify_kernel_crash()
install_timeout = int(params.get("timeout", 3000))
post_install_delay = int(params.get("post_install_delay", 0))
--
1.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-03-18 20:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-18 20:58 [PATCH 1/2] KVM test: Create a verify_kernel_crash() VM method v3 Lucas Meneghel Rodrigues
2011-03-18 20:58 ` [PATCH 2/2] KVM test: Use verify_kernel_crash() on unattended install Lucas Meneghel Rodrigues
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox