[pypy-svn] pypy default: merge heads
arigo
commits-noreply at bitbucket.org
Wed Feb 9 19:44:39 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r41756:7c1044ee2b80
Date: 2011-02-09 19:44 +0100
http://bitbucket.org/pypy/pypy/changeset/7c1044ee2b80/
Log: merge heads
diff --git a/pypy/interpreter/test/test_pyframe.py b/pypy/interpreter/test/test_pyframe.py
--- a/pypy/interpreter/test/test_pyframe.py
+++ b/pypy/interpreter/test/test_pyframe.py
@@ -439,3 +439,30 @@
res = f(1)
sys.settrace(None)
assert res == 42
+
+ def test_set_unset_f_trace(self):
+ skip("in-progress, but not too important")
+ import sys
+ seen = []
+ def trace1(frame, what, arg):
+ seen.append((1, frame, frame.f_lineno, what, arg))
+ return trace1
+ def trace2(frame, what, arg):
+ seen.append((2, frame, frame.f_lineno, what, arg))
+ return trace2
+ def set_the_trace(f):
+ f.f_trace = trace1
+ sys.settrace(trace2)
+ len(seen) # take one line: should not be traced
+ f = sys._getframe()
+ set_the_trace(f)
+ len(seen) # take one line: should not be traced
+ len(seen) # take one line: should not be traced
+ sys.settrace(None) # and this line should be the last line traced
+ len(seen) # take one line
+ del f.f_trace
+ len(seen) # take one line
+ firstline = set_the_trace.func_code.co_firstlineno
+ assert seen == [(1, f, firstline + 6, 'line', None),
+ (1, f, firstline + 7, 'line', None),
+ (1, f, firstline + 8, 'line', None)]
More information about the Pypy-commit
mailing list