[pypy-svn] rev 2386 - pypy/trunk/src/pypy/tool

sschwarzer at codespeak.net sschwarzer at codespeak.net
Tue Dec 16 16:15:50 CET 2003


Author: sschwarzer
Date: Tue Dec 16 16:15:49 2003
New Revision: 2386

Modified:
   pypy/trunk/src/pypy/tool/test.py
Log:
Make CtsTestRunner work also with other platforms than Unix.


Modified: pypy/trunk/src/pypy/tool/test.py
==============================================================================
--- pypy/trunk/src/pypy/tool/test.py	(original)
+++ pypy/trunk/src/pypy/tool/test.py	Tue Dec 16 16:15:49 2003
@@ -18,9 +18,9 @@
         if not count:
             return result
 
-        fm = getattr(self, 'frommodule','')
+        fm = getattr(self, 'frommodule', '')
 
-        if fm and Options.verbose==0:
+        if fm and Options.verbose == 0:
             sys.stderr.write('\n%s [%d]' %(fm, count))
         result = unittest.TestSuite.__call__(self, result)
         return result
@@ -137,18 +137,17 @@
 class CtsTestRunner:
     def run(self, test):
         import pickle
+        import cStringIO as StringIO
 
         output = sys.stdout
         result = MyTestResult()
-        sso = sys.stdout
-        sse = sys.stderr
         try:
-            sys.stdout = open('/dev/null', 'w')
-            sys.stderr = open('/dev/null', 'w')
+            # discard output of test or suite
+            sys.stdout = sys.stderr = StringIO.StringIO()
             test(result)
         finally:
-            sys.stdout = sso
-            sys.stderr = sse
+            sys.stdout = sys.__stdout__
+            sys.stderr = sys.__stderr__
 
         ostatus = {}
         if os.path.exists('testcts.pickle'):
@@ -302,8 +301,8 @@
         help="enter an interactive mode on failure or error"))
     options.append(make_option(
         '-c', action="store_true", dest="runcts",
-        help="run CtsTestRunner (catches stdout and prints report "
-        "after testing) [unix only, for now]"))
+        help="run CtsTestRunner (discards output and prints report "
+             "after testing)"))
     return options
 
 def run_tests(suite):


More information about the Pypy-commit mailing list