From: Armin Rigo Date: Mon, 22 Mar 2004 19:30:39 +0000 (+0000) Subject: The fix in ceval.c 2.386 allows iteration-by-iteration line tracing even in X-Git-Tag: v2.4a1~606 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=706933821c88508299a292e8bb20bf22a9f6364b;p=python The fix in ceval.c 2.386 allows iteration-by-iteration line tracing even in single-line loops. --- diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py index 6aac8df8ae..f85c669630 100644 --- a/Lib/test/test_trace.py +++ b/Lib/test/test_trace.py @@ -165,6 +165,27 @@ tightloop_example.events = [(0, 'call'), (7, 'line'), (7, 'return')] +def tighterloop_example(): + items = range(1, 4) + try: + i = 0 + while 1: i = items[i] + except IndexError: + pass + +tighterloop_example.events = [(0, 'call'), + (1, 'line'), + (2, 'line'), + (3, 'line'), + (4, 'line'), + (4, 'line'), + (4, 'line'), + (4, 'line'), + (4, 'exception'), + (5, 'line'), + (6, 'line'), + (6, 'return')] + class Tracer: def __init__(self): self.events = [] @@ -220,6 +241,8 @@ class TraceTestCase(unittest.TestCase): self.run_test(ireturn_example) def test_11_tightloop(self): self.run_test(tightloop_example) + def test_12_tighterloop(self): + self.run_test(tighterloop_example) class RaisingTraceFuncTestCase(unittest.TestCase): def trace(self, frame, event, arg):