[pypy-svn] r64616 - pypy/branch/pyjitpl5/pypy/jit/backend/test

fijal at codespeak.net fijal at codespeak.net
Fri Apr 24 02:27:11 CEST 2009


Author: fijal
Date: Fri Apr 24 02:27:09 2009
New Revision: 64616

Modified:
   pypy/branch/pyjitpl5/pypy/jit/backend/test/conftest.py
   pypy/branch/pyjitpl5/pypy/jit/backend/test/test_random.py
Log:
Ability to write down output directly to a file


Modified: pypy/branch/pyjitpl5/pypy/jit/backend/test/conftest.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/test/conftest.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/test/conftest.py	Fri Apr 24 02:27:09 2009
@@ -27,5 +27,8 @@
                         default=15,
                         dest="repeat",
                         help="run the test this many times"),
+        group.addoption('--output', '-O', action="store", type="str",
+                        default="", dest="output",
+                        help="dump output to a file")
 
 ConftestPlugin = RandomRunnerPlugin

Modified: pypy/branch/pyjitpl5/pypy/jit/backend/test/test_random.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/test/test_random.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/test/test_random.py	Fri Apr 24 02:27:09 2009
@@ -20,34 +20,40 @@
         return v_result
 
     def print_loop(self):
+        if demo_conftest.option.output:
+            s = open(demo_conftest.option.output, "w")
+        else:
+            s = sys.stdout
         names = {None: 'None'}
         for v in self.vars:
             names[v] = 'v%d' % len(names)
-            print '    %s = BoxInt()' % (names[v],)
+            print >>s, '    %s = BoxInt()' % (names[v],)
         for op in self.loop.operations:
             v = op.result
             if v not in names:
                 names[v] = 'tmp%d' % len(names)
-                print '    %s = BoxInt()' % (names[v],)
-        print "    loop = TreeLoop('test')"
-        print '    loop.inputargs = [%s]' % (
+                print >>s, '    %s = BoxInt()' % (names[v],)
+        print >>s, "    loop = TreeLoop('test')"
+        print >>s, '    loop.inputargs = [%s]' % (
             ', '.join([names[v] for v in self.loop.inputargs]))
         from pypy.jit.metainterp.resoperation import opname
-        print '    loop.operations = ['
+        print >>s, '    loop.operations = ['
         for op in self.loop.operations:
-            print '        ResOperation(rop.%s, [%s], %s),' % (
+            print >>s, '        ResOperation(rop.%s, [%s], %s),' % (
                 opname[op.opnum],
                 ', '.join([names.get(v, 'ConstInt(%d)' % v.value)
                            for v in op.args]),
                 names[op.result])
-        print '            ]'
-        print '    cpu = CPU(None, None)'
-        print '    cpu.compile_operations(loop)'
-        print '    cpu.execute_operations(loop, [%s])' % (
+        print >>s, '            ]'
+        print >>s, '    cpu = CPU(None, None)'
+        print >>s, '    cpu.compile_operations(loop)'
+        print >>s, '    cpu.execute_operations(loop, [%s])' % (
             ', '.join(['BoxInt(%d)' % v.value for v in self.loop.inputargs]))
         for v in self.loop.operations[-1].args:
-            print '    assert %s.value == %d' % (names[v], v.value)
+            print >>s, '    assert %s.value == %d' % (names[v], v.value)
         self.names = names
+        if demo_conftest.option.output:
+            s.close()
 
 class AbstractOperation:
     def __init__(self, opnum, boolres=False):



More information about the Pypy-commit mailing list