pypy.module.sys.test.apptest_monitoring:test_fire_py_yield_resume
def test_fire_py_yield_resume():
E = sys.monitoring.events
events = []
def callback(*args):
events.append(args[:2])
sys.monitoring.use_tool_id(3, "test tool")
try:
sys.monitoring.register_callback(3, E.PY_START, callback)
sys.monitoring.register_callback(3, E.PY_RESUME, callback)
sys.monitoring.register_callback(3, E.PY_YIELD, callback)
sys.monitoring.register_callback(3, E.PY_RETURN, callback)
sys.monitoring.set_events(3, E.PY_START | E.PY_RESUME | E.PY_YIELD | E.PY_RETURN)
def g():
yield 1
yield 2
events[:] = []
gen = g()
code = g.__code__
assert next(gen) == 1
assert next(gen) == 2
raises(StopIteration, next, gen)
sys.monitoring.set_events(3, 0)
g_events = [ev for ev in events if ev[0] is code]
> assert len(g_events) == 6 # start, yield, resume, yield, resume, return
E assert 5 == 6
E + where 5 = len([(<code object g at 0x00007fb9ca0508e0, file "/buildbot/slave/pypy-c-jit-linux-x86-64/build/pypy/module/sys/test/appte...508e0, file "/buildbot/slave/pypy-c-jit-linux-x86-64/build/pypy/module/sys/test/apptest_monitoring.py", line 340>, 10)])
../build/pypy/module/sys/test/apptest_monitoring.py:352: AssertionError
builder: pypy-c-jit-linux-x86-64 build #11971+
test: pypy.module.sys.test.apptest_monitoring:test_fire_py_yield_resume