Browse Source

tests/micropython: Add tests for heap_lock, and emergency exceptions.

pull/2513/head
Damien George 8 years ago
parent
commit
34d0b3f85c
  1. 20
      tests/micropython/emg_exc.py
  2. 1
      tests/micropython/emg_exc.py.exp
  3. 14
      tests/micropython/heap_lock.py
  4. 2
      tests/micropython/heap_lock.py.exp
  5. 13
      tests/micropython/heapalloc.py

20
tests/micropython/emg_exc.py

@ -0,0 +1,20 @@
# test that emergency exceptions work
import micropython
import sys
# some ports need to allocate heap for the emg exc
try:
micropython.alloc_emergency_exception_buf(256)
except AttributeError:
pass
def f():
micropython.heap_lock()
try:
raise ValueError(1)
except ValueError as er:
sys.print_exception(er)
micropython.heap_unlock()
f()

1
tests/micropython/emg_exc.py.exp

@ -0,0 +1 @@
ValueError:

14
tests/micropython/heap_lock.py

@ -0,0 +1,14 @@
# check that heap_lock/heap_unlock work as expected
import micropython
micropython.heap_lock()
try:
print([])
except MemoryError:
print('MemoryError')
micropython.heap_unlock()
print([])

2
tests/micropython/heap_lock.py.exp

@ -0,0 +1,2 @@
MemoryError
[]

13
tests/micropython/heapalloc.py

@ -1,6 +1,6 @@
# check that we can do certain things without allocating heap memory
import gc
import micropython
def f1(a):
print(a)
@ -28,12 +28,7 @@ def test():
f2(i, i) # 2 args
f3(1, 2, 3, 4) # function with lots of local state
# call h with heap allocation disabled and all memory used up
gc.disable()
try:
while True:
'a'.lower # allocates 1 cell for boundmeth
except MemoryError:
pass
# call test() with heap allocation disabled
micropython.heap_lock()
test()
gc.enable()
micropython.heap_unlock()

Loading…
Cancel
Save