summaryrefslogtreecommitdiff
path: root/tests/micropython/heap_lock.py
blob: 209a3143461a54a396f3faa8aa7cd51fed42d852 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# check that heap_lock/heap_unlock work as expected

try:
    import micropython
except ImportError:
    print("SKIP")
    raise SystemExit

l = []
l2 = list(range(100))

micropython.heap_lock()
micropython.heap_lock()

# general allocation on the heap
try:
    print([])
except MemoryError:
    print("MemoryError")

# expansion of a heap block
try:
    l.extend(l2)
except MemoryError:
    print("MemoryError")

print(micropython.heap_unlock())

# Should still fail
try:
    print([])
except MemoryError:
    print("MemoryError")

micropython.heap_unlock()

# check that allocation works after an unlock
print([])