diff options
author | Damien George <damien.p.george@gmail.com> | 2016-11-21 17:10:17 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2016-11-21 17:10:17 +1100 |
commit | d70f87aaa2fe31b099359b4b27444f3b289cdb8c (patch) | |
tree | 2e3a931b09df33a58a46e11a8ab4f07c9f25fcd5 /tests/micropython/heapalloc.py | |
parent | 21d82421cd7b3a3f74850cffaf84646ff49a04f2 (diff) |
tests/micropython: Add test for creating traceback without allocation.
Diffstat (limited to 'tests/micropython/heapalloc.py')
-rw-r--r-- | tests/micropython/heapalloc.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/micropython/heapalloc.py b/tests/micropython/heapalloc.py index a651158ca..c19893a00 100644 --- a/tests/micropython/heapalloc.py +++ b/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() |