# -*- 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() | |