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.
pull/1/head
Damien George 2016-11-21 17:39:23 +11:00
parent d70f87aaa2
commit 1f43d49f9e
5 changed files with 28 additions and 18 deletions

View File

@ -1,7 +1,6 @@
# check that we can do certain things without allocating heap memory
import micropython
import sys
def f1(a):
print(a)
@ -18,13 +17,6 @@ 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_exc
global_var = 2 # set an existing global variable
@ -36,13 +28,6 @@ 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()

View File

@ -9,6 +9,3 @@
1 2
1 1
1 2 3 4 10
Traceback (most recent call last):
File "micropython/heapalloc.py", line 42, in test
StopIteration:

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

View File

@ -0,0 +1,3 @@
Traceback (most recent call last):
File "micropython/heapalloc_traceback.py", line 17, in test
StopIteration:

View File

@ -291,6 +291,7 @@ def run_tests(pyb, tests, args):
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/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:
test_file = test_file.replace('\\', '/')