Re: [Autotest] [v3 PATCH] KVM test: Add a helper to search the panic in the log

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <jasowang@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux