tests/micropython: Add test for creating traceback without allocation.
This commit is contained in:
parent
21d82421cd
commit
d70f87aaa2
@ -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()
|
||||
|
@ -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…
x
Reference in New Issue
Block a user