summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--tests/micropython/heapalloc.py17
-rw-r--r--tests/micropython/heapalloc.py.exp3
2 files changed, 19 insertions, 1 deletions
diff --git a/tests/micropython/heapalloc.py b/tests/micropython/heapalloc.py
index a651158ca5..c19893a008 100644
--- a/tests/micropython/heapalloc.py
+++ b/tests/micropython/heapalloc.py
@@ -1,6 +1,7 @@
# check that we can do certain things without allocating heap memory
import micropython
+import sys
def f1(a):
print(a)
@@ -17,8 +18,15 @@ def f3(a, b, c, d):
global_var = 1
+# preallocate exception instance with some room for a traceback
+global_exc = StopIteration()
+try:
+ raise global_exc
+except:
+ pass
+
def test():
- global global_var
+ global global_var, global_exc
global_var = 2 # set an existing global variable
for i in range(2): # for loop
f1(i) # function call
@@ -28,6 +36,13 @@ def test():
f2(i, i) # 2 args
f3(1, 2, 3, 4) # function with lots of local state
+ # test that we can generate a traceback without allocating
+ 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()
diff --git a/tests/micropython/heapalloc.py.exp b/tests/micropython/heapalloc.py.exp
index c8cffe183f..3d5825f5a6 100644
--- a/tests/micropython/heapalloc.py.exp
+++ b/tests/micropython/heapalloc.py.exp
@@ -9,3 +9,6 @@
1 2
1 1
1 2 3 4 10
+Traceback (most recent call last):
+ File "micropython/heapalloc.py", line 42, in test
+StopIteration: