Edit

kc3-lang/brotli/python/tests/roundtrip_test.py

Branch :

  • Show log

    Commit

  • Author : eustas
    Date : 2016-06-03 12:31:02
    Hash : b73ebe32
    Message : Fix test file path

  • python/tests/roundtrip_test.py
  • #!/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
    ../common/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)
            try:
                os.unlink(compressed)
                os.unlink(uncompressed)
            except OSError:
                pass