diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-09-14 13:31:18 +0100 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-09-14 13:31:18 +0100 |
commit | a2c2e4485bbdbf4bc88755c0b1e0e0477473915a (patch) | |
tree | 2b6dd9b99d5c2176b3c91c85ab9b47a8119e1e84 | |
parent | 7c79c1c5299108e58852905182abcc7d3ba6fa40 (diff) | |
download | klee-a2c2e4485bbdbf4bc88755c0b1e0e0477473915a.tar.gz |
Upgrade ConcreteTest.py to work with Python3 (Python 2.7.x should still
work)
-rwxr-xr-x | test/Concrete/ConcreteTest.py | 49 |
1 files changed, 18 insertions, 31 deletions
diff --git a/test/Concrete/ConcreteTest.py b/test/Concrete/ConcreteTest.py index 02eaf4d9..290991b7 100755 --- a/test/Concrete/ConcreteTest.py +++ b/test/Concrete/ConcreteTest.py @@ -1,55 +1,42 @@ #!/usr/bin/python +from __future__ import print_function import argparse import os -import popen2 +import subprocess import sys import shutil -def readFile(f): - s = "" - while 1: - data = f.read() - if not data: - break - s += data - return s - def testFile(name, klee_path, lli_path): baseName,ext = os.path.splitext(name) exeFile = 'Output/linked_%s.bc'%baseName - print '-- building test bitcode --' + print('-- building test bitcode --') make_cmd = 'make %s 2>&1' % (exeFile,) - print "EXECUTING: %s" % (make_cmd,) + print("EXECUTING: %s" % (make_cmd,)) sys.stdout.flush() if os.system(make_cmd): raise SystemExit('make failed') - print '\n-- running lli --' - lli_cmd = '%s -force-interpreter=true %s' % (lli_path, exeFile) - print "EXECUTING: %s" % (lli_cmd,) - lli = popen2.Popen3(lli_cmd) - lliOut = readFile(lli.fromchild) - if lli.wait(): - raise SystemExit('lli execution failed') + print('\n-- running lli --') + lli_cmd = [lli_path, '-force-interpreter=true', exeFile] + print("EXECUTING: %s" % (lli_cmd,)) - print '-- lli output --\n%s--\n' % (lliOut,) + # Decode is for python 3.x + lliOut = subprocess.check_output(lli_cmd).decode() + print('-- lli output --\n%s--\n' % (lliOut,)) - print '-- running klee --' + print('-- running klee --') klee_out_path = "Output/%s.klee-out" % (baseName,) if os.path.exists(klee_out_path): shutil.rmtree(klee_out_path) - klee_cmd = '%s --output-dir=%s --no-output %s' % ( - klee_path, klee_out_path, exeFile) - print "EXECUTING: %s" % (klee_cmd,) + klee_cmd = [klee_path, '--output-dir=' + klee_out_path, '--no-output', exeFile] + print("EXECUTING: %s" % (klee_cmd,)) sys.stdout.flush() - klee = popen2.Popen3(klee_cmd) - kleeOut = readFile(klee.fromchild) - if klee.wait(): - raise SystemExit('klee execution failed') - print '-- klee output --\n%s--\n' % (kleeOut,) + # Decode is for python 3.x + kleeOut = subprocess.check_output(klee_cmd).decode() + print('-- klee output --\n%s--\n' % (kleeOut,)) if lliOut != kleeOut: raise SystemExit('outputs differ') @@ -59,11 +46,11 @@ def testOneFile(f, printOutput=False): testFile(f, printOutput) code = ['pass','xpass'][f.startswith('broken')] extra = '' - except TestError,e: + except TestError as e: code = ['fail','xfail'][f.startswith('broken')] extra = str(e) - print '%s: %s -- %s'%(code,f,extra) + print('%s: %s -- %s'%(code,f,extra)) def main(): parser = argparse.ArgumentParser() |