| #!/usr/bin/env python |
| from __future__ import print_function |
| import sys |
| import os |
| from subprocess import check_call, Popen, PIPE |
| |
| from test_utils import PYTHON, BRO, TEST_ENV, diff_q |
| |
| |
| INPUTS = """\ |
| testdata/alice29.txt |
| testdata/asyoulik.txt |
| testdata/lcet10.txt |
| testdata/plrabn12.txt |
| ../enc/encode.cc |
| ../enc/dictionary.h |
| ../dec/decode.c |
| %s |
| """ % BRO |
| |
| os.chdir(os.path.abspath("../../tests")) |
| for filename in INPUTS.splitlines(): |
| for quality in (1, 6, 9, 11): |
| filename = os.path.abspath(filename) |
| print('Roundtrip testing file "%s" at quality %d' % |
| (os.path.basename(filename), quality)) |
| compressed = os.path.splitext(filename)[0] + ".bro" |
| uncompressed = os.path.splitext(filename)[0] + ".unbro" |
| check_call([PYTHON, BRO, "-f", "-q", str(quality), "-i", filename, |
| "-o", compressed], env=TEST_ENV) |
| check_call([PYTHON, BRO, "-f", "-d", "-i", compressed, "-o", |
| uncompressed], env=TEST_ENV) |
| if diff_q(filename, uncompressed) != 0: |
| sys.exit(1) |
| # Test the streaming version |
| with open(filename, "rb") as infile, \ |
| open(uncompressed, "wb") as outfile: |
| p = Popen([PYTHON, BRO, "-q", str(quality)], stdin=infile, |
| stdout=PIPE, env=TEST_ENV) |
| check_call([PYTHON, BRO, "-d"], stdin=p.stdout, stdout=outfile, |
| env=TEST_ENV) |
| if diff_q(filename, uncompressed) != 0: |
| sys.exit(1) |