summaryrefslogtreecommitdiff
path: root/tests/micropython/heapalloc_traceback.py
blob: 9f43da259202887eb03fb47f5c06f3e678d14ec9 (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
# test that we can generate a traceback without allocating

import micropython
import sys

# preallocate exception instance with some room for a traceback
global_exc = StopIteration()
try:
    raise global_exc
except:
    pass

def test():
    global global_exc
    global_exc.__traceback__ = None
    try:
        raise global_exc
    except StopIteration as e:
        sys.print_exception(e)

# call test() with heap allocation disabled
micropython.heap_lock()
test()
micropython.heap_unlock()