KVM test: optionally convert PPM files to PNG format after test
This is intended to save disk space. Requires ImageMagick (uses mogrify).
To enable:
convert_ppm_files_to_png = yes
To enable only for failed tests:
convert_ppm_files_to_png_on_error = yes
Reminder: by default PPM files are removed after the test (and after the
conversion, if requested). To keep them specify:
keep_ppm_files = yes
To keep them only for failed tests:
keep_ppm_files_on_error = yes
A reasonable choice would be to keep PNG files for failed tests, and never
keep PPM files. To do this specify
convert_ppm_files_to_png_on_error = yes
without specifying 'keep_ppm_files = yes' or 'keep_ppm_files_on_error = yes'
(or explicitly set to 'no', if it was set to 'yes' on a higher level in the
config hierarchy).
This patch also makes small cosmetic changes to the 'keep_ppm_files' feature.
Signed-off-by: Michael Goldish <mgoldish@redhat.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@3438 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/client/tests/kvm/kvm_preprocessing.py b/client/tests/kvm/kvm_preprocessing.py
index 7b97f00..71f7a6b 100644
--- a/client/tests/kvm/kvm_preprocessing.py
+++ b/client/tests/kvm/kvm_preprocessing.py
@@ -264,11 +264,19 @@
"""
process(test, params, env, postprocess_image, postprocess_vm)
- # See if we should get rid of all PPM files
- if not params.get("keep_ppm_files") == "yes":
- # Remove them all
+ # Should we convert PPM files to PNG format?
+ if params.get("convert_ppm_files_to_png") == "yes":
+ logging.debug("'convert_ppm_files_to_png' specified; converting PPM"
+ " files to PNG format...")
+ mogrify_cmd = ("mogrify -format png %s" %
+ os.path.join(test.debugdir, "*.ppm"))
+ kvm_subprocess.run_fg(mogrify_cmd, logging.debug, "(mogrify) ",
+ timeout=30.0)
+
+ # Should we keep the PPM files?
+ if params.get("keep_ppm_files") != "yes":
logging.debug("'keep_ppm_files' not specified; removing all PPM files"
- " from results dir...")
+ " from debug dir...")
rm_cmd = "rm -vf %s" % os.path.join(test.debugdir, "*.ppm")
kvm_subprocess.run_fg(rm_cmd, logging.debug, "(rm) ", timeout=5.0)