tests: Move heap-realloc-while-locked test from C to Python.

This test for calling gc_realloc() while the GC is locked can be done in
pure Python, so better to do it that way since it can then be tested on
more ports.
This commit is contained in:
Damien George 2018-03-02 10:59:09 +11:00
parent c3f1b22338
commit c607b58efe
4 changed files with 13 additions and 8 deletions

View File

@ -169,14 +169,8 @@ STATIC mp_obj_t extra_coverage(void) {
gc_free(NULL);
gc_unlock();
// calling gc_realloc while GC is locked
void *p = gc_alloc(4, false);
gc_lock();
mp_printf(&mp_plat_print, "%p\n", gc_realloc(p, 8, true));
gc_unlock();
// using gc_realloc to resize to 0, which means free the memory
p = gc_alloc(4, false);
void *p = gc_alloc(4, false);
mp_printf(&mp_plat_print, "%p\n", gc_realloc(p, 0, false));
// calling gc_nbytes with a non-heap pointer

View File

@ -2,13 +2,24 @@
import micropython
l = []
l2 = list(range(100))
micropython.heap_lock()
# general allocation on the heap
try:
print([])
except MemoryError:
print('MemoryError')
# expansion of a heap block
try:
l.extend(l2)
except MemoryError:
print('MemoryError')
micropython.heap_unlock()
# check that allocation works after an unlock
print([])

View File

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

View File

@ -16,7 +16,6 @@ abc
# GC
0
0
0
# vstr
tests
sts