summaryrefslogtreecommitdiffstatshomepage
path: root/tests/micropython/heapalloc.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython/heapalloc.py')
-rw-r--r--tests/micropython/heapalloc.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/tests/micropython/heapalloc.py b/tests/micropython/heapalloc.py
index f74bb92c85..99f157105d 100644
--- a/tests/micropython/heapalloc.py
+++ b/tests/micropython/heapalloc.py
@@ -5,18 +5,26 @@ import micropython
# Check for stackless build, which can't call functions without
# allocating a frame on heap.
try:
- def stackless(): pass
- micropython.heap_lock(); stackless(); micropython.heap_unlock()
+
+ def stackless():
+ pass
+
+ micropython.heap_lock()
+ stackless()
+ micropython.heap_unlock()
except RuntimeError:
print("SKIP")
raise SystemExit
+
def f1(a):
print(a)
+
def f2(a, b=2):
print(a, b)
+
def f3(a, b, c, d):
x1 = x2 = a
x3 = x4 = b
@@ -24,19 +32,22 @@ def f3(a, b, c, d):
x7 = x8 = d
print(x1, x3, x5, x7, x2 + x4 + x6 + x8)
+
global_var = 1
+
def test():
global global_var, global_exc
- global_var = 2 # set an existing global variable
+ global_var = 2 # set an existing global variable
for i in range(2): # for loop
- f1(i) # function call
- f1(i * 2 + 1) # binary operation with small ints
- f1(a=i) # keyword arguments
- f2(i) # default arg (second one)
- f2(i, i) # 2 args
+ f1(i) # function call
+ f1(i * 2 + 1) # binary operation with small ints
+ f1(a=i) # keyword arguments
+ f2(i) # default arg (second one)
+ f2(i, i) # 2 args
f3(1, 2, 3, 4) # function with lots of local state
+
# call test() with heap allocation disabled
micropython.heap_lock()
test()