From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Goldish Subject: Re: [Autotest] [v3 PATCH] KVM test: Add a helper to search the panic in the log Date: Thu, 20 May 2010 13:00:17 +0300 Message-ID: <4BF50831.4010905@redhat.com> References: <20100519091341.13404.57277.stgit@dhcp-91-25.nay.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: lmr@redhat.com, autotest@test.kernel.org, kvm@vger.kernel.org To: Jason Wang Return-path: Received: from mx1.redhat.com ([209.132.183.28]:53726 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755389Ab0ETKA4 (ORCPT ); Thu, 20 May 2010 06:00:56 -0400 In-Reply-To: <20100519091341.13404.57277.stgit@dhcp-91-25.nay.redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 05/19/2010 12:13 PM, Jason Wang wrote: > This checker serves as the post_command to find the panic information > in the file which contains the content of guest serial console. > > Changes from v2: > - Put all things into __main__ > - Fix some typos > > Signed-off-by: Jason Wang > --- > client/tests/kvm/scripts/check_serial.py | 24 ++++++++++++++++++++++++ > client/tests/kvm/tests_base.cfg.sample | 7 +++++-- > 2 files changed, 29 insertions(+), 2 deletions(-) > create mode 100644 client/tests/kvm/scripts/check_serial.py > > diff --git a/client/tests/kvm/scripts/check_serial.py b/client/tests/kvm/scripts/check_serial.py > new file mode 100644 > index 0000000..6432c27 > --- /dev/null > +++ b/client/tests/kvm/scripts/check_serial.py > @@ -0,0 +1,24 @@ > +import os, sys, glob, re > + > + > +class SerialCheckerError(Exception): > + """ > + Simple wrapper for the builtin Exception class. > + """ > + pass > + > + > +if __name__ == "__main__": > + client_dir = os.environ['AUTODIR'] > + pattern = os.environ['KVM_TEST_search_pattern'] > + shortname = os.environ['KVM_TEST_shortname'] > + debugdir = os.path.join(client_dir, "results/default/kvm.%s/debug" > + % shortname) > + serial_files = glob.glob(os.path.join(debugdir, 'serial*')) > + > + fail = [ f for f in serial_files if > + re.findall(pattern, file(f).read(), re.I) ] > + if fail: > + print "%s is found in %s" % (pattern, fail) > + raise SerialCheckerError("Error found during the check, please " > + "check the log") > diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample > index e85bb4a..c4e522a 100644 > --- a/client/tests/kvm/tests_base.cfg.sample > +++ b/client/tests/kvm/tests_base.cfg.sample > @@ -52,6 +52,10 @@ address_index = 0 > # Misc > profilers = kvm_stat > > +# pattern to search in guest serial console > +search_pattern = panic > +post_command = "python scripts/check_serial.py" > +post_command_noncritical = no > > # Tests > variants: > @@ -1324,10 +1328,9 @@ virtio|virtio_blk|e1000|balloon_check: > variants: > - @qcow2: > image_format = qcow2 > - post_command = " python scripts/check_image.py;" > + post_command += " && python scripts/check_image.py" If post_command is empty before executing this line, it'll end up being " && python scripts/..." and bash doesn't like that AFAIK. I think this line should be: post_command += " python scripts/check_image.py;" So if post_command is empty, it becomes " python ...;" which is OK, and if it isn't empty, it becomes "previous command; python ...;" (assuming the previous command ended with ';'). > remove_image = no > post_command_timeout = 600 > - post_command_noncritical = yes > - vmdk: > only Fedora Ubuntu Windows > only smp2 > > _______________________________________________ > Autotest mailing list > Autotest@test.kernel.org > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest