Browse Source

tests/micropython: Add test for creating traceback without allocation.

pull/2633/merge
Damien George 8 years ago
parent
commit
d70f87aaa2
  1. 17
      tests/micropython/heapalloc.py
  2. 3
      tests/micropython/heapalloc.py.exp

17
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()

3
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:

Loading…
Cancel
Save