diff --git a/tests/micropython/viper_misc.py b/tests/micropython/viper_misc.py
index e8b96b9c1424e6f8f65a28088c9bfd5c0009ada0..8bf6cc638fc8652eadd2b6fdef8497b88fa7e819 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 7859d39e53dcd284f49d4f92969bada566dd5e9f..4800050d15d68fadce33be05d7b6981e0b6c8bf6 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 81a413c4061c2218da62ab3b107666c05c5dbb0c..0b865eb9e7b818ab0b30988584ca0e1458d76d9a 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 caf4754893a3ba552d7265a74dc231cd0c189bbe..2d86b974c4c4e5d4624d0bd015342f83a7ab8e26 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 94cde2bc653394effa9222d76bd767212922e1e8..5a5f25d170f9969c7037b922514f0640482928ba 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 639a43f8f68e6101f39291f4ac8c9ca864b175ac..31a6dfbe33df5d984d4a12e7a5aa3f6fcabb2999 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 d552b9df6720d0e74e74f3ffb183a8df3bbbcf94..4d8b3846de5853f2a88f1175c25dc9c8c1b2d767 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 e7ce2d972dd5bfc525efa1d10af1cd99b1fd8c7f..7ea37f1ca79b546543e267c97e248a6a79124b65 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 b63bac9ee3f9f5ce59180fc346da0e23b7ab1fcf..973086e4ad4dc61d6fb49ed684e64614a053535f 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 13b9f418f87951605c297e6d8d29ab75f099221b..de8d0ec572cd23ef5dce60b1c0305af93994c491 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')