From: Finn B. <bc...@us...> - 2001-07-14 16:22:47
|
Update of /cvsroot/jython/bugtests In directory usw-pr-cvs1:/tmp/cvs-serv9250 Added Files: driver.py support.py Log Message: Initial version. --- NEW FILE --- import sys, string, traceback, getopt, support, os failures = {} def reportError(): print n , "Failed!" if m and hasattr(m, "__doc__"): print m.__doc__.strip() print " ", sys.exc_info()[0] print " ", sys.exc_info()[1] failures[n] = 1 traceback.print_tb(sys.exc_info()[2]) opts, argv = getopt.getopt(sys.argv[1:], 'w') warnings = "-w" in opts for i in range(300): m = None n = "test%3.3d" % i try: stdout = sys.stdout if os.path.isfile(n + ".py"): m = __import__(n) sys.stdout = stdout print n, "OK!" else: print n, "Skipped" # except ImportError, e: # sys.stdout = stdout # if string.lower(str(e)[:20]) == "no module named test": # break # print n, str(e) except support.TestWarning: sys.stdout = stdout if warnings: reportError() else: print n, "Ok" except: sys.stdout = stdout reportError() t = failures.keys() t.sort() print print "%d tests failed" % len(t) print t sys.exit(1) --- NEW FILE --- import re, exceptions, thread, os, shutil class TestError(exceptions.Exception): def __init__(self, args): exceptions.Exception.__init__(self, args) class TestWarning(exceptions.Exception): def __init__(self, args): exceptions.Exception.__init__(self, args) def compare(s, pattern): m = re.search(pattern, str(s)) if m is None: raise TestError("string compare error\n " + str(s) + "\n " + pattern) def execCmd(cmd): #print cmd import java r = java.lang.Runtime.getRuntime() e = getattr(r, "exec") p = e(cmd) return p def compileJava(src, **kw): cmd = "javac " if kw.has_key("classpath"): cmd = cmd + "-classpath %s;%%CLASSPATH%% " % kw['classpath'] src = src.replace('/', '\\'); p = execCmd('cmd /C "%s %s"' % (cmd, src)) import java if kw.has_key("output"): outstream = java.io.FileOutputStream(kw['output']) else: outstream = java.lang.System.out import java thread.start_new_thread(StreamReader, (p.inputStream, outstream)) thread.start_new_thread(StreamReader, (p.errorStream, outstream)) ret = p.waitFor() if ret != 0: raise TestError, "%s failed with %d" % (cmd, ret) def runJava(cls, **kw): cmd = "java " if kw.has_key("classpath"): cmd = cmd + "-classpath %s;%%CLASSPATH%% " % kw['classpath'] p = execCmd('cmd /C "%s %s"' % (cmd, cls)) import java if kw.has_key("output"): outstream = java.io.FileOutputStream(kw['output']) else: outstream = java.lang.System.out import java thread.start_new_thread(StreamReader, (p.inputStream, outstream)) thread.start_new_thread(StreamReader, (p.errorStream, outstream)) ret = p.waitFor() if ret != 0: raise TestError, "%s failed with %d" % (cmd, ret) def StreamReader(instream, outstream): while 1: ch = instream.read() if ch == -1: break outstream.write(ch); def compileJPythonc(*files, **kw): if os.path.isdir("jpywork") and not kw.has_key("keep"): shutil.rmtree("jpywork", 1) import java if kw.has_key("output"): outstream = java.io.FileOutputStream(kw['output']) else: outstream = java.lang.System.out cmd = "jythonc " if kw.has_key("core"): cmd = cmd + "--core " if kw.has_key("deep"): cmd = cmd + "--deep " if kw.has_key("all"): cmd = cmd + "--all " if kw.has_key("package"): cmd = cmd + "--package %s " % kw['package'] if kw.has_key("jar"): cmd = cmd + "--jar %s " % kw['jar'] if os.path.isfile(kw['jar']): os.remove(kw['jar']) cmd = cmd + " ".join(files) p = execCmd('cmd /C "%s"' % cmd) import java thread.start_new_thread(StreamReader, (p.inputStream, outstream)) thread.start_new_thread(StreamReader, (p.errorStream, outstream)) ret = p.waitFor() if ret != 0 and not kw.has_key("expectError"): raise TestError, "%s failed with %d" % (cmd, ret) return ret def grep(file, text, count=0): f = open(file, "r") lines = f.readlines() f.close() result = [] for line in lines: if re.search(text, line): result.append(line) if count: return len(result) return result |