Fix tests

This commit is contained in:
Gregory Komagurov
2017-05-11 19:43:14 +03:00
parent 93ec81673b
commit 69fd1b3371

View File

@@ -106,6 +106,7 @@ def main(in_base, out_base, files, codes, outfile=None,
return open(outfile, 'w') return open(outfile, 'w')
tot_files = okay_files = failed_files = verify_failed_files = 0 tot_files = okay_files = failed_files = verify_failed_files = 0
current_outfile = outfile
for filename in files: for filename in files:
infile = os.path.join(in_base, filename) infile = os.path.join(in_base, filename)
@@ -134,11 +135,11 @@ def main(in_base, out_base, files, codes, outfile=None,
os.dup2(tee.stdin.fileno(), sys.stderr.fileno()) os.dup2(tee.stdin.fileno(), sys.stderr.fileno())
else: else:
if filename.endswith('.pyc'): if filename.endswith('.pyc'):
outfileindir = os.path.join(out_base, filename[0:-1]) current_outfile = os.path.join(out_base, filename[0:-1])
else: else:
outfileindir = os.path.join(out_base, filename) + '_dis' current_outfile = os.path.join(out_base, filename) + '_dis'
outstream = _get_outstream(outfileindir) outstream = _get_outstream(current_outfile)
# print(outfile, file=sys.stderr) # print(current_outfile, file=sys.stderr)
# Try to uncompile the input file # Try to uncompile the input file
try: try:
@@ -157,16 +158,16 @@ def main(in_base, out_base, files, codes, outfile=None,
raise raise
# except: # except:
# failed_files += 1 # failed_files += 1
# if outfile: # if current_outfile:
# outstream.close() # outstream.close()
# os.rename(outfile, outfile + '_failed') # os.rename(current_outfile, current_outfile + '_failed')
# else: # else:
# sys.stderr.write("\n# %s" % sys.exc_info()[1]) # sys.stderr.write("\n# %s" % sys.exc_info()[1])
# sys.stderr.write("\n# Can't uncompile %s\n" % infile) # sys.stderr.write("\n# Can't uncompile %s\n" % infile)
else: # uncompile successful else: # uncompile successful
if outfile: if current_outfile:
if do_linemaps: if do_linemaps:
mapping = line_number_mapping(infile, outfile) mapping = line_number_mapping(infile, current_outfile)
outstream.write("\n\n## Line number correspondences\n") outstream.write("\n\n## Line number correspondences\n")
import pprint import pprint
s = pprint.pformat(mapping, indent=2, width=80) s = pprint.pformat(mapping, indent=2, width=80)
@@ -177,8 +178,8 @@ def main(in_base, out_base, files, codes, outfile=None,
if do_verify: if do_verify:
weak_verify = do_verify == 'weak' weak_verify = do_verify == 'weak'
try: try:
msg = verify.compare_code_with_srcfile(infile, outfile, weak_verify=weak_verify) msg = verify.compare_code_with_srcfile(infile, current_outfile, weak_verify=weak_verify)
if not outfile: if not current_outfile:
if not msg: if not msg:
print('\n# okay decompiling %s' % infile) print('\n# okay decompiling %s' % infile)
okay_files += 1 okay_files += 1
@@ -187,7 +188,7 @@ def main(in_base, out_base, files, codes, outfile=None,
except verify.VerifyCmpError as e: except verify.VerifyCmpError as e:
print(e) print(e)
verify_failed_files += 1 verify_failed_files += 1
os.rename(outfile, outfile + '_unverified') os.rename(current_outfile, current_outfile + '_unverified')
sys.stderr.write("### Error Verifying %s\n" % filename) sys.stderr.write("### Error Verifying %s\n" % filename)
sys.stderr.write(str(e) + "\n") sys.stderr.write(str(e) + "\n")
if not outfile: if not outfile:
@@ -201,15 +202,15 @@ def main(in_base, out_base, files, codes, outfile=None,
pass pass
else: else:
okay_files += 1 okay_files += 1
if not outfile: if not current_outfile:
mess = '\n# okay decompiling' mess = '\n# okay decompiling'
# mem_usage = __memUsage() # mem_usage = __memUsage()
print(mess, infile) print(mess, infile)
if outfile: if current_outfile:
sys.stdout.write("%s\r" % sys.stdout.write("%s\r" %
status_msg(do_verify, tot_files, okay_files, failed_files, verify_failed_files)) status_msg(do_verify, tot_files, okay_files, failed_files, verify_failed_files))
sys.stdout.flush() sys.stdout.flush()
if outfile: if current_outfile:
sys.stdout.write("\n") sys.stdout.write("\n")
sys.stdout.flush() sys.stdout.flush()
return (tot_files, okay_files, failed_files, verify_failed_files) return (tot_files, okay_files, failed_files, verify_failed_files)