tests/micropython: Add test for yield-from while heap is locked.
This commit is contained in:
parent
aacd618939
commit
de8c04317b
|
@ -0,0 +1,31 @@
|
||||||
|
# Check that yield-from can work without heap allocation
|
||||||
|
|
||||||
|
import micropython
|
||||||
|
|
||||||
|
# Yielding from a function generator
|
||||||
|
def sub_gen(a):
|
||||||
|
for i in range(a):
|
||||||
|
yield i
|
||||||
|
def gen(g):
|
||||||
|
yield from g
|
||||||
|
g = gen(sub_gen(4))
|
||||||
|
micropython.heap_lock()
|
||||||
|
print(next(g))
|
||||||
|
print(next(g))
|
||||||
|
micropython.heap_unlock()
|
||||||
|
|
||||||
|
# Yielding from a user iterator
|
||||||
|
class G:
|
||||||
|
def __init__(self):
|
||||||
|
self.value = 0
|
||||||
|
def __iter__(self):
|
||||||
|
return self
|
||||||
|
def __next__(self):
|
||||||
|
v = self.value
|
||||||
|
self.value += 1
|
||||||
|
return v
|
||||||
|
g = gen(G())
|
||||||
|
micropython.heap_lock()
|
||||||
|
print(next(g))
|
||||||
|
print(next(g))
|
||||||
|
micropython.heap_unlock()
|
|
@ -0,0 +1,4 @@
|
||||||
|
0
|
||||||
|
1
|
||||||
|
0
|
||||||
|
1
|
Loading…
Reference in New Issue