X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Ftest;h=a1856fd7d3c20c9dac64322f5734ed8fd5259858;hb=18b8ab0d7614dceda8836fe3bc50df7cbb41d85a;hp=02063455e4c659c51c6f56046861d500c86cfd26;hpb=b981dc70e7f97f7462a9bcfac0e3ad33ce70b512;p=swftools.git diff --git a/lib/as3/test b/lib/as3/test old mode 100644 new mode 100755 index 0206345..a1856fd --- a/lib/as3/test +++ b/lib/as3/test @@ -42,7 +42,10 @@ def check(s): if "/" not in line: return 0 i = line.index('/') - nr,len = int(line[3:i]),int(line[i+1:]) + try: + nr,len = int(line[3:i]),int(line[i+1:]) + except ValueError: + return 0 if nr<1 or nr>len: return 0 if not row: @@ -70,6 +73,8 @@ def runcmd(cmd,args,wait): output += os.read(fi, 8192) if "[exit]" in output: break + if "rror" in output: + break ret = p.poll() if ret is not None: break @@ -87,13 +92,14 @@ def runcmd(cmd,args,wait): class Cache: def __init__(self, filename): + self.filename = filename self.filename_milestone = filename+"_milestone" try: - self.filename2status = marshal.load(open(filename, "rb")) + self.filename2status = marshal.load(open(self.filename, "rb")) except IOError: self.filename2status = {} try: - self.milestone = marshal.load(open(filename, "rb")) + self.milestone = marshal.load(open(self.filename_milestone, "rb")) except IOError: self.milstone = {} @@ -103,6 +109,15 @@ class Cache: parser.add_option("-a", "--all", dest="all", help="Run all tests (also tests expected fail)",action="store_true") parser.add_option("-t", "--tag", dest="tag", help="Mark the current pass/fail statistic as milestone",action="store_true") (options, args) = parser.parse_args() + + if args and args[0]=="add": + self.all = 1 + self.tag = 1 + self.milestone[args[1]] = "ok" + self.filename2status = self.milestone + self.save() + sys.exit(0) + self.__dict__.update(options.__dict__) self.runtime = 1 if self.tag: @@ -117,8 +132,8 @@ class Cache: def load(filename): return Cache(filename) - def save(self, filename): - fi = open(filename, "wb") + def save(self): + fi = open(self.filename, "wb") marshal.dump(self.filename2status, fi) fi.close() if self.tag: @@ -133,9 +148,9 @@ class Cache: def skip_file(self, nr, filename): if self.checknum>=0 and nr!=self.checknum: return 1 - if not self.all and self.milestone[filename]!="ok": + if not self.all and self.milestone.get(filename,"new")!="ok": return 1 - if self.diff and self.filename2status[filename]=="ok": + if self.diff and self.filename2status(filename,"new")=="ok": return 1 return 0 @@ -275,4 +290,4 @@ nr = 0 nr = Suite(cache, "err").run(nr) nr = Suite(cache, "ok").run(nr) -cache.save(".tests.cache") +cache.save()