[Piglit] [PATCH 2/4] framework: add --force to xz compress line
Dylan Baker
baker.dylan.c at gmail.com
Wed Jul 22 18:11:21 PDT 2015
This adds a test for overwriting an xz file in the non-backports.lzma
path, and a fix for overwriting an existing xz file.
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
framework/backends/compression.py | 2 +-
framework/tests/compressed_backend_tests.py | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/framework/backends/compression.py b/framework/backends/compression.py
index 6f867be..55cabe6 100644
--- a/framework/backends/compression.py
+++ b/framework/backends/compression.py
@@ -127,7 +127,7 @@ except ImportError:
try:
with open(os.devnull, 'w') as null:
subprocess.check_call(
- ['xz', '--compress', '-9', filename],
+ ['xz', '--compress', '-9', '--force', filename],
stderr=null)
except OSError as e:
if e.errno == errno.ENOENT:
diff --git a/framework/tests/compressed_backend_tests.py b/framework/tests/compressed_backend_tests.py
index 6e0f4ec..5d9678e 100644
--- a/framework/tests/compressed_backend_tests.py
+++ b/framework/tests/compressed_backend_tests.py
@@ -30,6 +30,7 @@ import os
import functools
import nose.tools as nt
+from nose.plugins.skip import SkipTest
from framework.tests import utils
from framework.backends import compression, abstract
@@ -223,3 +224,23 @@ def test_update_piglit_conf():
"""
nt.eq_(compression.get_mode(), 'foobar')
+
+
+ at utils.set_env(PIGLIT_COMPRESSION='xz')
+ at utils.test_in_tempdir
+def test_xz_shell_override():
+ """framework.backends.compression: the xz shell utility path can overwrite"""
+ # TODO: this test will not be required by python3, where the builtin lzma
+ # module replaces all of this.
+ try:
+ import backports.lzma # pylint: disable=unused-variable
+ except ImportError:
+ pass
+ else:
+ raise SkipTest('Test requires shell path, not backports.lzma path.')
+
+ with open('foo.json.xz', 'w') as f:
+ f.write('foo')
+
+ with compression.COMPRESSORS['xz']('foo.json') as f:
+ f.write('foobar')
--
2.4.6
More information about the Piglit
mailing list