Signed-off-by: Jiří Župka <jzupka@xxxxxxxxxx> --- client/virt/virt_vm.py | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/client/virt/virt_vm.py b/client/virt/virt_vm.py index 32593c1..c2b6586 100644 --- a/client/virt/virt_vm.py +++ b/client/virt/virt_vm.py @@ -133,6 +133,18 @@ class VMDeadKernelCrashError(VMError): return ("VM is dead due to a kernel crash:\n%s" % self.kernel_crash) +class VMInvalidInstructionCode(VMError): + def __init__(self, invalid_code): + VMError.__init__(self, invalid_code) + self.invalid_code = invalid_code + + def __str__(self): + error = "" + for invalid_code in self.invalid_code: + error += "%s" % (invalid_code) + return ("Invalid instruction is started on VM:\n%s" % error) + + class VMAddressError(VMError): pass @@ -656,6 +668,21 @@ class BaseVM(object): raise VMDeadKernelCrashError(match.group(0)) + def verify_ilegal_instructon(self): + """ + Find kernel crash message on the VM serial console. + + @raise: VMInvalidInstructionCode, in case a wrong instruction code. + """ + if self.serial_console is not None: + data = self.serial_console.get_output() + match = re.findall(r".*trap invalid opcode.*\n", data, + re.MULTILINE) + + if match: + raise VMInvalidInstructionCode(match) + + def get_params(self): """ Return the VM's params dict. Most modified params take effect only -- 1.7.7.5 -- 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