summaryrefslogtreecommitdiff
path: root/tests/micropython/heapalloc_fail_list.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2019-04-18 14:34:12 +1000
committerDamien George <damien.p.george@gmail.com>2019-04-18 14:34:12 +1000
commiteb1f81b209f0d13059ebb4fa2ed105a0d6a4b0d0 (patch)
treebe61d020fc09161fc856d3f1516495219b647978 /tests/micropython/heapalloc_fail_list.py
parent4ce0091449052daca592f852a31eece074d34a57 (diff)
tests/micropython: Add some tests for failed heap allocation.
This adds tests for some locations in the code where a memory allocation should raise an exception.
Diffstat (limited to 'tests/micropython/heapalloc_fail_list.py')
-rw-r--r--tests/micropython/heapalloc_fail_list.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/micropython/heapalloc_fail_list.py b/tests/micropython/heapalloc_fail_list.py
new file mode 100644
index 000000000..a54bdb6cf
--- /dev/null
+++ b/tests/micropython/heapalloc_fail_list.py
@@ -0,0 +1,36 @@
+# test handling of failed heap allocation with list
+
+import micropython
+
+class GetSlice:
+ def __getitem__(self, idx):
+ return idx
+sl = GetSlice()[:]
+
+# create slice in VM
+l = [1, 2, 3]
+micropython.heap_lock()
+try:
+ print(l[0:1])
+except MemoryError:
+ print('MemoryError: list index')
+micropython.heap_unlock()
+
+# get from list using slice
+micropython.heap_lock()
+try:
+ l[sl]
+except MemoryError:
+ print('MemoryError: list get slice')
+micropython.heap_unlock()
+
+# extend list using slice subscr
+l = [1, 2]
+l2 = [3, 4, 5, 6, 7, 8, 9, 10]
+micropython.heap_lock()
+try:
+ l[sl] = l2
+except MemoryError:
+ print('MemoryError: list extend slice')
+micropython.heap_unlock()
+print(l)