From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [v3 PATCH] KVM test: Add a helper to search the panic in the log Date: Mon, 24 May 2010 15:38:00 +0800 Message-ID: <4BFA2CD8.3010008@redhat.com> References: <20100519091341.13404.57277.stgit@dhcp-91-25.nay.redhat.com> <4BF50831.4010905@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: autotest@test.kernel.org, kvm@vger.kernel.org To: Michael Goldish Return-path: In-Reply-To: <4BF50831.4010905@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: autotest-bounces@test.kernel.org Errors-To: autotest-bounces@test.kernel.org List-Id: kvm.vger.kernel.org Michael Goldish wrote: > 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 ';'). > > What I want is to fail the case when panic was found, so how about use <= like: post_command <= "python scripts/check_image.py;" >> 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 >> > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >