summaryrefslogtreecommitdiff
path: root/tests/micropython/viper_addr.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython/viper_addr.py')
-rw-r--r--tests/micropython/viper_addr.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/micropython/viper_addr.py b/tests/micropython/viper_addr.py
index cd953ce07..0d8efb90b 100644
--- a/tests/micropython/viper_addr.py
+++ b/tests/micropython/viper_addr.py
@@ -9,6 +9,13 @@ def memset(dest:ptr8, c:int, n:int):
for i in range(n):
dest[i] = c
+@micropython.viper
+def memsum(src:ptr8, n:int) -> int:
+ s = 0
+ for i in range(n):
+ s += src[i]
+ return s
+
# create array and get its address
ar = bytearray('0000')
addr = get_addr(ar)
@@ -27,3 +34,6 @@ print(ar)
# pass direct pointer to array buffer, with offset
memset(addr + 2, ord('3'), len(ar) - 2)
print(ar)
+
+# pass a read-only bytes object in
+print(memsum(b'\x01\x02\x03\x04', 4))