aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2014-09-14 13:31:18 +0100
committerDan Liew <daniel.liew@imperial.ac.uk>2014-09-14 13:31:18 +0100
commita2c2e4485bbdbf4bc88755c0b1e0e0477473915a (patch)
tree2b6dd9b99d5c2176b3c91c85ab9b47a8119e1e84 /test
parent7c79c1c5299108e58852905182abcc7d3ba6fa40 (diff)
downloadklee-a2c2e4485bbdbf4bc88755c0b1e0e0477473915a.tar.gz
Upgrade ConcreteTest.py to work with Python3 (Python 2.7.x should still
work)
Diffstat (limited to 'test')
-rwxr-xr-xtest/Concrete/ConcreteTest.py49
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()