5 # Run compiler unit tests
7 # Copyright (c) 2008 Matthias Kramm <kramm@quiss.org>
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
31 for line in s.split("\n"):
32 if line.startswith("[") and line.endswith("]"):
36 if not line.startswith("ok"):
38 if line.startswith("ok "):
42 nr,len = int(line[3:i]),int(line[i+1:])
56 def runcmd(cmd,args,output,wait):
57 #fo = open(tempfile, "wb")
59 p = subprocess.Popen([cmd] + args, executable=cmd, stdout=fo, stderr=fo)
61 for i in range(wait*10):
68 os.system("killall -9 "+cmd)
77 def __init__(self, nr, file):
80 self.flash_output = None
81 self.flash_error = None
82 self.compile_output = None
83 self.compile_error = None
85 if not self.compile_error:
89 ret,output = runcmd("./parser",[self.file],"/tmp/abctest.txt",wait=60)
90 self.compile_error = 0
91 self.compile_output = output
93 self.compile_error = 1
96 ret,output = runcmd("flashplayer",["abc.swf"],"/tmp/abctest.txt",wait=1)
97 os.system("killall flashplayer")
98 self.flash_output = output
100 if not check(self.flash_output):
107 return (" "*(l-len(s))) + s
111 return s + (" "*(l-len(s)))
113 print r(str(self.nr),3)," ",
114 if self.compile_error:
118 if not self.flash_error:
125 def doprintlong(self):
126 print self.nr, self.file
127 print "================================"
128 print test.compile_output
129 print "================================"
130 print test.flash_output
131 print "================================"
135 checknum = int(sys.argv[1])
137 for nr,file in sorted(enumerate(os.listdir("ok"))):
138 if not file.endswith(".as"):
140 file = os.path.join("ok", file)
141 if checknum>=0 and nr!=checknum: