[pypy-svn] r60447 - in pypy/build/testrunner: . test
pedronis at codespeak.net
pedronis at codespeak.net
Fri Dec 12 13:16:52 CET 2008
Author: pedronis
Date: Fri Dec 12 13:16:50 2008
New Revision: 60447
Modified:
pypy/build/testrunner/runner.py
pypy/build/testrunner/test/test_runner.py
Log:
- support a cleanup hook after each testdir
- hook for choosing a test_driver per testdir
Modified: pypy/build/testrunner/runner.py
==============================================================================
--- pypy/build/testrunner/runner.py (original)
+++ pypy/build/testrunner/runner.py Fri Dec 12 13:16:50 2008
@@ -99,10 +99,11 @@
def worker(num, n, run_param, testdirs, result_queue):
sessdir = run_param.sessdir
root = run_param.root
- test_driver = run_param.test_driver
+ get_test_driver = run_param.get_test_driver
interp = run_param.interp
dry_run = run_param.dry_run
timeout = run_param.timeout
+ cleanup = run_param.cleanup
# xxx cfg thread start
while 1:
try:
@@ -116,11 +117,12 @@
one_output = sessdir.join("%d-%s-output" % (num, basename))
num += n
+ test_driver = get_test_driver(test)
exitcode = execute_test(root, test, one_output, logfname,
interp, test_driver, do_dry_run=dry_run,
timeout=timeout)
- # xxx cfg cleanup after testdir
+ cleanup(test)
output = one_output.read()
if logfname.check(file=1):
@@ -204,6 +206,9 @@
self.root = root
self.self = self
+ def get_test_driver(self, testdir):
+ return self.test_driver
+
def is_test_py_file(self, p):
name = p.basename
return name.startswith('test_') and name.endswith('.py')
@@ -235,6 +240,8 @@
if p1.check(dir=1, link=0):
self.collect_testdirs(testdirs, p1)
+ def cleanup(self, testdir):
+ pass
def main(args):
Modified: pypy/build/testrunner/test/test_runner.py
==============================================================================
--- pypy/build/testrunner/test/test_runner.py (original)
+++ pypy/build/testrunner/test/test_runner.py Fri Dec 12 13:16:50 2008
@@ -163,7 +163,7 @@
run_param = runner.RunParam(self.one_test_dir)
run_param.test_driver = test_driver
- run_param.parallel_runs = 3
+ run_param.parallel_runs = 3
res = runner.execute_tests(run_param, ['test_normal'], log, out)
@@ -217,12 +217,18 @@
log = cStringIO.StringIO()
out = cStringIO.StringIO()
+ cleanedup = []
+ def cleanup(testdir):
+ cleanedup.append(testdir)
+
run_param = runner.RunParam(self.manydir)
run_param.test_driver = test_driver
run_param.parallel_runs = 3
+ run_param.cleanup = cleanup
testdirs = []
run_param.collect_testdirs(testdirs)
+ alltestdirs = testdirs[:]
res = runner.execute_tests(run_param, testdirs, log, out)
@@ -243,6 +249,8 @@
assert noutcomes == 3*107
assert nfailures == 3*6
+ assert set(cleanedup) == set(alltestdirs)
+
def test_timeout(self):
test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')]
More information about the Pypy-commit
mailing list