-#!/usr/bin/env /usr/bin/python3
+#!/usr/bin/env python3
import os
import sys
from tempfile import mkstemp
from subprocess import Popen, PIPE
from difflib import Differ
+from hashlib import md5
+from shutil import copy
DEBUG = 0
VERBOSE = False
return tests
-def diff_files(f1, f2):
+def diff_text(f1, f2):
t1 = open(f1).readlines()
t2 = open(f2).readlines()
diff = []
return diff
+def compare_binary(f1, f2):
+ h1 = md5()
+ h1.update(open(f1, 'rb').read())
+ h2 = md5()
+ h2.update(open(f2, 'rb').read())
+ if h1.digest() == h2.digest():
+ result = None
+ else:
+ result = ["Binary output does not match."]
+
+ return result
+
+
def run_tests(tests, fix=False):
errors = 0
results = []
match = os.path.join(decoders_dir, op['pd'], 'test', op['match'])
try:
diff = diff_error = None
- if op['type'] == 'annotation':
- diff = diff_textfiles(match, outfile)
+ if op['type'] in ('annotation', 'python'):
+ diff = diff_text(match, outfile)
+ elif op['type'] == 'binary':
+ diff = compare_binary(match, outfile)
else:
diff = ["Unsupported output type '%s'." % op['type']]
except Exception as e: