diff options
| author | Damien George | 2019-08-05 16:32:10 +1000 |
|---|---|---|
| committer | Damien George | 2019-08-06 15:58:23 +1000 |
| commit | cd35dd9d9a29836906acdce60c931f6352b536d0 (patch) | |
| tree | 7fe4f06cceb784bafb26794c847babd34e90d162 /tests/micropython | |
| parent | 2d3d4f74830eddaba8e13ca9a860a5cb7fb2f163 (diff) | |
py: Allow to pass in read-only buffers to viper and inline-asm funcs.
Fixes #4936.
Diffstat (limited to 'tests/micropython')
| -rw-r--r-- | tests/micropython/viper_addr.py | 10 | ||||
| -rw-r--r-- | tests/micropython/viper_addr.py.exp | 1 |
2 files changed, 11 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)) diff --git a/tests/micropython/viper_addr.py.exp b/tests/micropython/viper_addr.py.exp index 87a18e1e2..8e08db9a5 100644 --- a/tests/micropython/viper_addr.py.exp +++ b/tests/micropython/viper_addr.py.exp @@ -4,3 +4,4 @@ bytearray(b'0000') bytearray(b'1111') bytearray(b'2222') bytearray(b'2233') +10 |
