[pypy-svn] r79402 - in pypy/trunk/pypy/jit/backend/x86: . test

fijal at codespeak.net fijal at codespeak.net
Tue Nov 23 15:58:35 CET 2010


Author: fijal
Date: Tue Nov 23 15:58:34 2010
New Revision: 79402

Modified:
   pypy/trunk/pypy/jit/backend/x86/assembler.py
   pypy/trunk/pypy/jit/backend/x86/test/test_runner.py
   pypy/trunk/pypy/jit/backend/x86/test/test_ztranslation.py
Log:
Move assembler logging counts into debug_log (now that we can specify multiple
things in logs)


Modified: pypy/trunk/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/trunk/pypy/jit/backend/x86/assembler.py	Tue Nov 23 15:58:34 2010
@@ -30,7 +30,7 @@
 from pypy.jit.backend.x86 import rx86, regloc, codebuf
 from pypy.jit.metainterp.resoperation import rop, ResOperation
 from pypy.jit.backend.x86.support import values_array
-from pypy.rlib.debug import debug_print
+from pypy.rlib.debug import debug_print, debug_start, debug_stop
 from pypy.rlib import rgc
 from pypy.jit.backend.x86.jump import remap_frame_layout
 from pypy.rlib.streamio import open_file_as_stream
@@ -231,7 +231,6 @@
                 if s.find(':') != -1:
                     s = s.split(':')[-1]
                 self.set_debug(True)
-                self._output_loop_log = s + ".count"
             # Intialize here instead of __init__ to prevent
             # pending_guard_tokens from being considered a prebuilt object,
             # which sometimes causes memory leaks since the prebuilt list is
@@ -241,13 +240,11 @@
 
     def finish_once(self):
         if self._debug:
-            output_log = self._output_loop_log
-            assert output_log is not None
-            f = open_file_as_stream(output_log, "w")
+            debug_start('jit-backend-counts')
             for i in range(len(self.loop_run_counters)):
                 name, struct = self.loop_run_counters[i]
-                f.write(str(name) + ":" +  str(struct.i) + "\n")
-            f.close()
+                debug_print(str(name) + ':' + str(struct.i))
+            debug_stop('jit-backend-counts')
 
     def _build_float_constants(self):
         # 44 bytes: 32 bytes for the data, and up to 12 bytes for alignment

Modified: pypy/trunk/pypy/jit/backend/x86/test/test_runner.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/test/test_runner.py	(original)
+++ pypy/trunk/pypy/jit/backend/x86/test/test_runner.py	Tue Nov 23 15:58:34 2010
@@ -495,6 +495,9 @@
             os.environ['PYPYLOG'] = self.pypylog
 
     def test_debugger_on(self):
+        from pypy.tool.logparser import parse_log_file, extract_category
+        from pypy.rlib import debug
+        
         loop = """
         [i0]
         debug_merge_point('xyz', 0)
@@ -504,17 +507,21 @@
         jump(i1)
         """
         ops = parse(loop)
-        self.cpu.assembler.set_debug(True)
-        self.cpu.compile_loop(ops.inputargs, ops.operations, ops.token)
-        self.cpu.set_future_value_int(0, 0)
-        self.cpu.execute_token(ops.token)
-        # check debugging info
-        name, struct = self.cpu.assembler.loop_run_counters[0]
-        assert name == 0       # 'xyz'
-        assert struct.i == 10
-        self.cpu.finish_once()
-        lines = py.path.local(self.logfile + ".count").readlines()
-        assert lines[0] == '0:10\n'  # '10      xyz\n'
+        debug._log = dlog = debug.DebugLog()
+        try:
+            self.cpu.assembler.set_debug(True)
+            self.cpu.compile_loop(ops.inputargs, ops.operations, ops.token)
+            self.cpu.set_future_value_int(0, 0)
+            self.cpu.execute_token(ops.token)
+            # check debugging info
+            name, struct = self.cpu.assembler.loop_run_counters[0]
+            assert name == 0       # 'xyz'
+            assert struct.i == 10
+            self.cpu.finish_once()
+        finally:
+            debug._log = None
+        assert dlog[1] == ('jit-backend-counts', [('debug_print', '0:10')])
+            
 
     def test_debugger_checksum(self):
         loop = """

Modified: pypy/trunk/pypy/jit/backend/x86/test/test_ztranslation.py
==============================================================================
--- pypy/trunk/pypy/jit/backend/x86/test/test_ztranslation.py	(original)
+++ pypy/trunk/pypy/jit/backend/x86/test/test_ztranslation.py	Tue Nov 23 15:58:34 2010
@@ -87,8 +87,13 @@
             return int(res)
         #
         def main(i, j):
-            return f(i, j) + libffi_stuff(i, j)
-        expected = main(40, -49)
+            res = f(i, j) + libffi_stuff(i, j)
+            fd = os.open('/tmp/x', os.O_WRONLY | os.O_CREAT, 0666)
+            rgc.dump_rpy_heap(fd)
+            os.close(fd)
+            return res
+        #expected = main(40, -49)
+        expected = 3
         res = self.meta_interp(main, [40, -49])
         assert res == expected
 



More information about the Pypy-commit mailing list