tests/heapalloc_inst_call: Test for no alloc for simple object calls.
This commit is contained in:
parent
492c612f9d
commit
05aebb9206
|
@ -0,0 +1,31 @@
|
||||||
|
# Test that calling clazz.__call__() with up to at least 3 arguments
|
||||||
|
# doesn't require heap allocation.
|
||||||
|
import micropython
|
||||||
|
|
||||||
|
class Foo0:
|
||||||
|
def __call__(self):
|
||||||
|
print("__call__")
|
||||||
|
|
||||||
|
class Foo1:
|
||||||
|
def __call__(self, a):
|
||||||
|
print("__call__", a)
|
||||||
|
|
||||||
|
class Foo2:
|
||||||
|
def __call__(self, a, b):
|
||||||
|
print("__call__", a, b)
|
||||||
|
|
||||||
|
class Foo3:
|
||||||
|
def __call__(self, a, b, c):
|
||||||
|
print("__call__", a, b, c)
|
||||||
|
|
||||||
|
f0 = Foo0()
|
||||||
|
f1 = Foo1()
|
||||||
|
f2 = Foo2()
|
||||||
|
f3 = Foo3()
|
||||||
|
|
||||||
|
micropython.heap_lock()
|
||||||
|
f0()
|
||||||
|
f1(1)
|
||||||
|
f2(1, 2)
|
||||||
|
f3(1, 2, 3)
|
||||||
|
micropython.heap_unlock()
|
|
@ -0,0 +1,4 @@
|
||||||
|
__call__
|
||||||
|
__call__ 1
|
||||||
|
__call__ 1 2
|
||||||
|
__call__ 1 2 3
|
Loading…
Reference in New Issue