[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