30 lines
524 B
Python
30 lines
524 B
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
A test helper for seeing what happens when slp_switch()
|
|
fails.
|
|
"""
|
|
# pragma: no cover
|
|
|
|
import greenlet
|
|
|
|
|
|
print('fail_slp_switch is running', flush=True)
|
|
|
|
runs = []
|
|
def func():
|
|
runs.append(1)
|
|
greenlet.getcurrent().parent.switch()
|
|
runs.append(2)
|
|
greenlet.getcurrent().parent.switch()
|
|
runs.append(3)
|
|
|
|
g = greenlet._greenlet.UnswitchableGreenlet(func)
|
|
g.switch()
|
|
assert runs == [1]
|
|
g.switch()
|
|
assert runs == [1, 2]
|
|
g.force_slp_switch_error = True
|
|
|
|
# This should crash.
|
|
g.switch()
|