summaryrefslogtreecommitdiff
path: root/tests/micropython/heapalloc_traceback.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-11-21 17:39:23 +1100
committerDamien George <damien.p.george@gmail.com>2016-11-21 17:39:23 +1100
commit1f43d49f9efa22d81e10be7bd20933986b4a3320 (patch)
tree95a3c2091ee575be6b7b3363d5cb10f45fced524 /tests/micropython/heapalloc_traceback.py
parentd70f87aaa2fe31b099359b4b27444f3b289cdb8c (diff)
tests/micropython: Move alloc-less traceback test to separate test file.
The native emitter doesn't provide proper traceback info so this test should not be run in that case.
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()