[Piglit] [PATCH v4 4/6] framework: add support for bz2 compression.
Dylan Baker
baker.dylan.c at gmail.com
Wed Jul 1 16:04:56 PDT 2015
This adds bzip2 compression support to piglit. This produces a file that
is ~5% the size of the original uncompressed json file.
v4: - add more tests
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
framework/backends/compression.py | 9 +++++++--
framework/tests/compressed_backend_tests.py | 17 +++++++++++++++++
piglit.conf.example | 8 ++++----
3 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/framework/backends/compression.py b/framework/backends/compression.py
index 44b8b9e..153dc94 100644
--- a/framework/backends/compression.py
+++ b/framework/backends/compression.py
@@ -42,6 +42,7 @@ they're passing unicode and not bytes.
"""
from __future__ import print_function, absolute_import, division
+import bz2
import functools
import gzip
import os
@@ -49,16 +50,20 @@ import os
from framework import exceptions
from framework.core import PIGLIT_CONFIG
-COMPRESSION_SUFFIXES = ['.gz']
+# TODO: in python3 the bz2 module has an open function
-DEFAULT = 'gz'
+COMPRESSION_SUFFIXES = ['.gz', '.bz2']
+
+DEFAULT = 'bz2'
COMPRESSORS = {
+ 'bz2': functools.partial(bz2.BZ2File, mode='w'),
'gz': functools.partial(gzip.open, mode='w'),
'none': functools.partial(open, mode='w'),
}
DECOMPRESSORS = {
+ 'bz2': functools.partial(bz2.BZ2File, mode='r'),
'gz': functools.partial(gzip.open, mode='r'),
'none': functools.partial(open, mode='r'),
}
diff --git a/framework/tests/compressed_backend_tests.py b/framework/tests/compressed_backend_tests.py
index 897a154..7af633d 100644
--- a/framework/tests/compressed_backend_tests.py
+++ b/framework/tests/compressed_backend_tests.py
@@ -201,3 +201,20 @@ def test_decompress_gz():
def test_gz_output():
"""framework.backends: when using gz compression a gz file is created"""
nt.eq_(_test_extension(), '.gz')
+
+
+ at utils.no_error
+def test_compress_bz2():
+ """framework.backends.compression: can compress to 'bz2'"""
+ _test_compressor('bz2')
+
+
+def test_decompress_bz2():
+ """framework.backends.compression: can decompress from 'bz2'"""
+ _test_decompressor('bz2')
+
+
+ at _set_compression_mode('bz2')
+def test_bz2_output():
+ """framework.backends: when using bz2 compression a bz2 file is created"""
+ nt.eq_(_test_extension(), '.bz2')
diff --git a/piglit.conf.example b/piglit.conf.example
index baf8108..3888fc6 100644
--- a/piglit.conf.example
+++ b/piglit.conf.example
@@ -110,10 +110,10 @@ run_test=./%(test_name)s
; -b/--backend
;backend=json
-; Set the default compression method to use,
-; May be one of: 'none', 'gz'
-; Default: 'gz'
-;compression=gz
+; Set the default compression method to use for results
+; May be one of: 'none', 'gz', 'bz2'
+; Default: 'bz2'
+;compression=bz2
[expected-failures]
; Provide a list of test names that are expected to fail. These tests
--
2.4.5
More information about the Piglit
mailing list