[pypy-svn] r18588 - pypy/dist/lib-python

ale at codespeak.net ale at codespeak.net
Fri Oct 14 19:35:25 CEST 2005


Author: ale
Date: Fri Oct 14 19:35:24 2005
New Revision: 18588

Modified:
   pypy/dist/lib-python/conftest.py
Log:
Added option to run the compliancy tests with a compiled pypy-c living in pypy/bin/

TODO : 
   be better at reporting segfaults
   better reporting of version of compiled pypy

Preliminary results:

   Some tests still take a lot of time (test_long, test_marshal ....)
   A lot of tests fails because of some mismatch between IOError (expected by test_support) and OSError (raised by lib/_file)
    

Modified: pypy/dist/lib-python/conftest.py
==============================================================================
--- pypy/dist/lib-python/conftest.py	(original)
+++ pypy/dist/lib-python/conftest.py	Fri Oct 14 19:35:24 2005
@@ -35,6 +35,9 @@
 
 Option = py.test.Config.Option 
 option = py.test.Config.addoptions("compliance testing options", 
+    Option('-C', '--compiled', action="store_true", 
+           default=False, dest="use_compiled", 
+           help="use a compiled version of pypy, expected in pypy/bin/pypy-c"),
     Option('-E', '--extracttests', action="store_true", 
            default=False, dest="extracttests", 
            help="try to extract single tests and run them via py.test/PyPy"), 
@@ -889,7 +892,14 @@
         regrrun_verbosity = regrtest.getoutputpath() and '0' or '1'
         
         TIMEOUT = gettimeout()
-        cmd = "%s %s %d %s %s %s %s %s" %(
+        if option.use_compiled:
+            python = pypydir.join('bin', 'pypy-c')
+            cmd = "%s %s %s %s" %(
+                python, 
+                regrrun, regrrun_verbosity, fspath.purebasename)
+            print cmd
+        else:
+            cmd = "%s %s %d %s %s %s %s %s" %(
                 python, alarm_script, TIMEOUT, 
                 pypy_script, sopt, 
                 regrrun, regrrun_verbosity, fspath.purebasename)
@@ -952,9 +962,13 @@
         cmd = self.getinvocation(regrtest) 
         result = Result()
         fspath = regrtest.getfspath() 
-        result['fspath'] = str(fspath)  
+        result['fspath'] = str(fspath) 
+        if option.use_compiled:
+            #Please fix this, breaks the report table
+            result['pypy-revision'] = '%s compiled' % getrev(pypydir)
+        else: 
+            result['pypy-revision'] = getrev(pypydir) 
         result['options'] = regrtest.getoptions() 
-        result['pypy-revision'] = getrev(pypydir) 
         result['timeout'] = gettimeout()
         result['startdate'] = time.ctime()
         starttime = time.time() 
@@ -980,6 +994,9 @@
                     res, out, err = callcapture(reportdiff, expected, test_stdout)
                     outcome = 'ERROUT' 
                     result.addnamedtext('reportdiff', out)
+            else:
+                if 'FAIL' in test_stdout or 'ERROR' in test_stderr:
+                    outcome = 'FAIL'
         elif timedout: 
             outcome = "T/O"    
         else: 



More information about the Pypy-commit mailing list