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.
This commit is contained in:
parent
d70f87aaa2
commit
1f43d49f9e
@ -1,7 +1,6 @@
|
|||||||
# check that we can do certain things without allocating heap memory
|
# check that we can do certain things without allocating heap memory
|
||||||
|
|
||||||
import micropython
|
import micropython
|
||||||
import sys
|
|
||||||
|
|
||||||
def f1(a):
|
def f1(a):
|
||||||
print(a)
|
print(a)
|
||||||
@ -18,13 +17,6 @@ def f3(a, b, c, d):
|
|||||||
|
|
||||||
global_var = 1
|
global_var = 1
|
||||||
|
|
||||||
# preallocate exception instance with some room for a traceback
|
|
||||||
global_exc = StopIteration()
|
|
||||||
try:
|
|
||||||
raise global_exc
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
global global_var, global_exc
|
global global_var, global_exc
|
||||||
global_var = 2 # set an existing global variable
|
global_var = 2 # set an existing global variable
|
||||||
@ -36,13 +28,6 @@ def test():
|
|||||||
f2(i, i) # 2 args
|
f2(i, i) # 2 args
|
||||||
f3(1, 2, 3, 4) # function with lots of local state
|
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
|
# call test() with heap allocation disabled
|
||||||
micropython.heap_lock()
|
micropython.heap_lock()
|
||||||
test()
|
test()
|
||||||
|
@ -9,6 +9,3 @@
|
|||||||
1 2
|
1 2
|
||||||
1 1
|
1 1
|
||||||
1 2 3 4 10
|
1 2 3 4 10
|
||||||
Traceback (most recent call last):
|
|
||||||
File "micropython/heapalloc.py", line 42, in test
|
|
||||||
StopIteration:
|
|
||||||
|
24
tests/micropython/heapalloc_traceback.py
Normal file
24
tests/micropython/heapalloc_traceback.py
Normal file
@ -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()
|
3
tests/micropython/heapalloc_traceback.py.exp
Normal file
3
tests/micropython/heapalloc_traceback.py.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Traceback (most recent call last):
|
||||||
|
File "micropython/heapalloc_traceback.py", line 17, in test
|
||||||
|
StopIteration:
|
@ -291,6 +291,7 @@ def run_tests(pyb, tests, args):
|
|||||||
skip_tests.add('misc/rge_sm.py') # requires yield
|
skip_tests.add('misc/rge_sm.py') # requires yield
|
||||||
skip_tests.add('misc/print_exception.py') # because native doesn't have proper traceback info
|
skip_tests.add('misc/print_exception.py') # because native doesn't have proper traceback info
|
||||||
skip_tests.add('misc/sys_exc_info.py') # sys.exc_info() is not supported for native
|
skip_tests.add('misc/sys_exc_info.py') # sys.exc_info() is not supported for native
|
||||||
|
skip_tests.add('micropython/heapalloc_traceback.py') # because native doesn't have proper traceback info
|
||||||
|
|
||||||
for test_file in tests:
|
for test_file in tests:
|
||||||
test_file = test_file.replace('\\', '/')
|
test_file = test_file.replace('\\', '/')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user