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
|