diff options
Diffstat (limited to 'tests/micropython/heapalloc_traceback.py')
-rw-r--r-- | tests/micropython/heapalloc_traceback.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/micropython/heapalloc_traceback.py b/tests/micropython/heapalloc_traceback.py new file mode 100644 index 000000000..9f43da259 --- /dev/null +++ b/tests/micropython/heapalloc_traceback.py @@ -0,0 +1,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() |