2016-12-24 16:50:27 -05:00
|
|
|
# Test that calling clazz.__call__() with up to at least 3 arguments
|
|
|
|
# doesn't require heap allocation.
|
|
|
|
import micropython
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2016-12-24 16:50:27 -05:00
|
|
|
class Foo0:
|
|
|
|
def __call__(self):
|
|
|
|
print("__call__")
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2016-12-24 16:50:27 -05:00
|
|
|
class Foo1:
|
|
|
|
def __call__(self, a):
|
|
|
|
print("__call__", a)
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2016-12-24 16:50:27 -05:00
|
|
|
class Foo2:
|
|
|
|
def __call__(self, a, b):
|
|
|
|
print("__call__", a, b)
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2016-12-24 16:50:27 -05:00
|
|
|
class Foo3:
|
|
|
|
def __call__(self, a, b, c):
|
|
|
|
print("__call__", a, b, c)
|
|
|
|
|
2021-03-15 09:57:36 -04:00
|
|
|
|
2016-12-24 16:50:27 -05:00
|
|
|
f0 = Foo0()
|
|
|
|
f1 = Foo1()
|
|
|
|
f2 = Foo2()
|
|
|
|
f3 = Foo3()
|
|
|
|
|
|
|
|
micropython.heap_lock()
|
|
|
|
f0()
|
|
|
|
f1(1)
|
|
|
|
f2(1, 2)
|
|
|
|
f3(1, 2, 3)
|
|
|
|
micropython.heap_unlock()
|