summaryrefslogtreecommitdiff
path: root/tests/micropython/heapalloc_traceback.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython/heapalloc_traceback.py')
-rw-r--r--tests/micropython/heapalloc_traceback.py24
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()