diff options
Diffstat (limited to 'tests/misc/sys_settrace_generator.py')
-rw-r--r-- | tests/misc/sys_settrace_generator.py | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/tests/misc/sys_settrace_generator.py b/tests/misc/sys_settrace_generator.py index e955d6b626..4ace0f50e8 100644 --- a/tests/misc/sys_settrace_generator.py +++ b/tests/misc/sys_settrace_generator.py @@ -8,21 +8,28 @@ except AttributeError: print("SKIP") raise SystemExit + def print_stacktrace(frame, level=0): - print("%2d: %s@%s:%s => %s:%d" % ( - level, " ", - frame.f_globals['__name__'], - frame.f_code.co_name, - # reduce full path to some pseudo-relative - 'misc' + ''.join(frame.f_code.co_filename.split('tests/misc')[-1:]), - frame.f_lineno, - )) + print( + "%2d: %s@%s:%s => %s:%d" + % ( + level, + " ", + frame.f_globals["__name__"], + frame.f_code.co_name, + # reduce full path to some pseudo-relative + "misc" + "".join(frame.f_code.co_filename.split("tests/misc")[-1:]), + frame.f_lineno, + ) + ) if frame.f_back: print_stacktrace(frame.f_back, level + 1) + trace_count = 0 + def trace_tick_handler(frame, event, arg): global trace_count print("### trace_handler::main event:", event) @@ -30,12 +37,13 @@ def trace_tick_handler(frame, event, arg): print_stacktrace(frame) return trace_tick_handler + def test_generator(): def make_gen(): - yield 1<<0 - yield 1<<1 - yield 1<<2 - return 1<<3 + yield 1 << 0 + yield 1 << 1 + yield 1 << 2 + return 1 << 3 gen = make_gen() r = 0 @@ -56,6 +64,7 @@ def test_generator(): r += i print(r) + sys.settrace(trace_tick_handler) test_generator() sys.settrace(None) |