diff --git a/tests/micropython/viper_misc.py b/tests/micropython/viper_misc.py index e8b96b9c14..8bf6cc638f 100644 --- a/tests/micropython/viper_misc.py +++ b/tests/micropython/viper_misc.py @@ -18,6 +18,12 @@ def viper_ret_none() -> int: return None print(viper_ret_none()) +# return Ellipsis as object +@micropython.viper +def viper_ret_ellipsis() -> object: + return ... +print(viper_ret_ellipsis()) + # 3 args @micropython.viper def viper_3args(a:int, b:int, c:int) -> int: diff --git a/tests/micropython/viper_misc.py.exp b/tests/micropython/viper_misc.py.exp index 7859d39e53..4800050d15 100644 --- a/tests/micropython/viper_misc.py.exp +++ b/tests/micropython/viper_misc.py.exp @@ -1,6 +1,7 @@ 6 3 0 +Ellipsis 6 7 20 diff --git a/tests/micropython/viper_ptr16_load.py b/tests/micropython/viper_ptr16_load.py index 81a413c406..0b865eb9e7 100644 --- a/tests/micropython/viper_ptr16_load.py +++ b/tests/micropython/viper_ptr16_load.py @@ -16,7 +16,17 @@ def memadd(src:ptr16, n:int) -> int: sum += src[i] return sum +@micropython.viper +def memadd2(src_in) -> int: + src = ptr16(src_in) + n = int(len(src_in)) >> 1 + sum = 0 + for i in range(n): + sum += src[i] + return sum + b = bytearray(b'1234') print(b) print(get(b), get1(b)) print(memadd(b, 2)) +print(memadd2(b)) diff --git a/tests/micropython/viper_ptr16_load.py.exp b/tests/micropython/viper_ptr16_load.py.exp index caf4754893..2d86b974c4 100644 --- a/tests/micropython/viper_ptr16_load.py.exp +++ b/tests/micropython/viper_ptr16_load.py.exp @@ -1,3 +1,4 @@ bytearray(b'1234') 12849 13363 26212 +26212 diff --git a/tests/micropython/viper_ptr16_store.py b/tests/micropython/viper_ptr16_store.py index 94cde2bc65..5a5f25d170 100644 --- a/tests/micropython/viper_ptr16_store.py +++ b/tests/micropython/viper_ptr16_store.py @@ -4,16 +4,33 @@ def set(dest:ptr16, val:int): dest[0] = val +@micropython.viper +def set1(dest:ptr16, val:int): + dest[1] = val + @micropython.viper def memset(dest:ptr16, val:int, n:int): for i in range(n): dest[i] = val +@micropython.viper +def memset2(dest_in, val:int): + dest = ptr16(dest_in) + n = int(len(dest_in)) >> 1 + for i in range(n): + dest[i] = val + b = bytearray(4) print(b) set(b, 0x4242) print(b) -memset(b, 0x4343, len(b) // 2) +set1(b, 0x4343) +print(b) + +memset(b, 0x4444, len(b) // 2) +print(b) + +memset2(b, 0x4545) print(b) diff --git a/tests/micropython/viper_ptr16_store.py.exp b/tests/micropython/viper_ptr16_store.py.exp index 639a43f8f6..31a6dfbe33 100644 --- a/tests/micropython/viper_ptr16_store.py.exp +++ b/tests/micropython/viper_ptr16_store.py.exp @@ -1,3 +1,5 @@ bytearray(b'\x00\x00\x00\x00') bytearray(b'BB\x00\x00') -bytearray(b'CCCC') +bytearray(b'BBCC') +bytearray(b'DDDD') +bytearray(b'EEEE') diff --git a/tests/micropython/viper_ptr32_load.py b/tests/micropython/viper_ptr32_load.py index d552b9df67..4d8b3846de 100644 --- a/tests/micropython/viper_ptr32_load.py +++ b/tests/micropython/viper_ptr32_load.py @@ -15,7 +15,17 @@ def memadd(src:ptr32, n:int) -> int: sum += src[i] return sum +@micropython.viper +def memadd2(src_in) -> int: + src = ptr32(src_in) + n = int(len(src_in)) >> 2 + sum = 0 + for i in range(n): + sum += src[i] + return sum + b = bytearray(b'\x12\x12\x12\x12\x34\x34\x34\x34') print(b) print(hex(get(b)), hex(get1(b))) print(hex(memadd(b, 2))) +print(hex(memadd2(b))) diff --git a/tests/micropython/viper_ptr32_load.py.exp b/tests/micropython/viper_ptr32_load.py.exp index e7ce2d972d..7ea37f1ca7 100644 --- a/tests/micropython/viper_ptr32_load.py.exp +++ b/tests/micropython/viper_ptr32_load.py.exp @@ -1,3 +1,4 @@ bytearray(b'\x12\x12\x12\x124444') 0x12121212 0x34343434 0x46464646 +0x46464646 diff --git a/tests/micropython/viper_ptr32_store.py b/tests/micropython/viper_ptr32_store.py index b63bac9ee3..973086e4ad 100644 --- a/tests/micropython/viper_ptr32_store.py +++ b/tests/micropython/viper_ptr32_store.py @@ -13,6 +13,13 @@ def memset(dest:ptr32, val:int, n:int): for i in range(n): dest[i] = val +@micropython.viper +def memset2(dest_in, val:int): + dest = ptr32(dest_in) + n = int(len(dest_in)) >> 2 + for i in range(n): + dest[i] = val + b = bytearray(8) print(b) @@ -24,3 +31,6 @@ print(b) memset(b, 0x44444444, len(b) // 4) print(b) + +memset2(b, 0x45454545) +print(b) diff --git a/tests/micropython/viper_ptr32_store.py.exp b/tests/micropython/viper_ptr32_store.py.exp index 13b9f418f8..de8d0ec572 100644 --- a/tests/micropython/viper_ptr32_store.py.exp +++ b/tests/micropython/viper_ptr32_store.py.exp @@ -2,3 +2,4 @@ bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00') bytearray(b'BBBB\x00\x00\x00\x00') bytearray(b'BBBBCCCC') bytearray(b'DDDDDDDD') +bytearray(b'EEEEEEEE')