On Wed, 2011-03-02 at 13:05 +0200, Michael Goldish wrote: > On 03/02/2011 05:46 AM, Lucas Meneghel Rodrigues wrote: > > + def verify_kernel_crash(self, timeout=2): > > + """ > > + Find kernel crash message on serial console. > > + > > + @param timeout: Timeout used to verify expected output. > > + > > + @raise: VMDeadKernelCrashError, in case a kernel crash message was > > + found. > > + """ > > + data = self.serial_console.read_nonblocking() > > I'm not sure using these methdos (read_nonblocking, > read_until_last_line_matches) is safe if verify_kernel_crash() is to be > used in tests that already use the serial console. If a test uses the > serial console for interactive shell sessions, it might read the BUG: > message unintentionally (while waiting for a shell prompt, for example) > and then verify_kernel_crash() will not read the BUG: message because > data can't be read twice. It's safer to use > self.serial_console.get_output(), which returns all the output seen so > far from the moment the process was started, including the output > already read by read_until_*(). However, it just returns a snapshot of > the output, so if you happen to call it while a trace is being printed, > you'll get a partial trace. But if the intended usage for the function > is to be called periodically, that's fine, because the next time it's > called you'll get the full trace. Does this make sense? > It does, certainly. It's a matter of changing the code to use get_output() then, thanks for the suggestion, awesome! Lucas -- 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