[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