Go to the documentation of this file.00001
00002
00003 import sys
00004 import os
00005 import tempfile
00006 import subprocess
00007
00008
00009 if __name__ == "__main__":
00010
00011 asebatest_bin = None
00012 input_script = None
00013 if len(sys.argv) == 3:
00014 asebatest_bin = sys.argv[1]
00015 input_script = sys.argv[2]
00016 else:
00017 print >> sys.stderr, "Wrong number of arguments.\n"
00018 print >> sys.stderr, "Usage:"
00019 print >> sys.stderr, " {} asebatest_bin input_script".format(sys.argv[0])
00020 exit(1)
00021
00022 try:
00023 f = open(input_script, 'rb')
00024 except IOError, e:
00025 print "Can not find the script file {}. Error.".format(input_script)
00026 exit(2)
00027
00028
00029 script = f.read()
00030 f.close()
00031
00032
00033 tmp = tempfile.NamedTemporaryFile(mode='wb', prefix='tmp', delete=False)
00034 tmp.close()
00035
00036
00037 tmp_script = ''
00038 failed = False
00039 for c in script:
00040
00041 tmp_script += c
00042
00043 tmp = open(tmp.name, 'wb')
00044 tmp.write(script)
00045 tmp.close()
00046
00047 retcode = subprocess.call([asebatest_bin, tmp.name], stdout=open(os.devnull), stderr=open(os.devnull))
00048 if retcode < 0:
00049
00050 print >> sys.stderr, "Compiler crached for the following code:"
00051 print >> sys.stderr, tmp_script
00052 failed = True
00053 break
00054
00055
00056 os.unlink(tmp.name)
00057
00058 if failed == True:
00059 exit(retcode)
00060 else:
00061 exit(0)
00062