From 05aebb920614cad89b4a626b02e74eb334b732aa Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sun, 25 Dec 2016 00:50:27 +0300 Subject: [PATCH] tests/heapalloc_inst_call: Test for no alloc for simple object calls. --- tests/micropython/heapalloc_inst_call.py | 31 ++++++++++++++++++++ tests/micropython/heapalloc_inst_call.py.exp | 4 +++ 2 files changed, 35 insertions(+) create mode 100644 tests/micropython/heapalloc_inst_call.py create mode 100644 tests/micropython/heapalloc_inst_call.py.exp diff --git a/tests/micropython/heapalloc_inst_call.py b/tests/micropython/heapalloc_inst_call.py new file mode 100644 index 0000000000..3cc497b73a --- /dev/null +++ b/tests/micropython/heapalloc_inst_call.py @@ -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() diff --git a/tests/micropython/heapalloc_inst_call.py.exp b/tests/micropython/heapalloc_inst_call.py.exp new file mode 100644 index 0000000000..0b06bb2c94 --- /dev/null +++ b/tests/micropython/heapalloc_inst_call.py.exp @@ -0,0 +1,4 @@ +__call__ +__call__ 1 +__call__ 1 2 +__call__ 1 2 3