circuitpython/tests/micropython/heapalloc_traceback.py
stijn 40ad8f1666 all: Rename "sys" module to "usys".
This is consistent with the other 'micro' modules and allows implementing
additional features in Python via e.g. micropython-lib's sys.

Note this is a breaking change (not backwards compatible) for ports which
do not enable weak links, as "import sys" must now be replaced with
"import usys".
2020-09-04 00:10:24 +10:00

44 lines
892 B
Python

# test that we can generate a traceback without allocating
import micropython
import usys
try:
import uio
except ImportError:
print("SKIP")
raise SystemExit
# preallocate exception instance with some room for a traceback
global_exc = StopIteration()
try:
raise global_exc
except:
pass
def test():
micropython.heap_lock()
global global_exc
global_exc.__traceback__ = None
try:
raise global_exc
except StopIteration:
print("StopIteration")
micropython.heap_unlock()
# call test() with heap allocation disabled
test()
# print the exception that was raised
buf = uio.StringIO()
usys.print_exception(global_exc, buf)
for l in buf.getvalue().split("\n"):
# uPy on pyboard prints <stdin> as file, so remove filename.
if l.startswith(" File "):
l = l.split('"')
print(l[0], l[2])
else:
print(l)