diff --git a/tests/extmod/uctypes_array_assign_native_le.py b/tests/extmod/uctypes_array_assign_native_le.py
index 474b7e0f2d95fe7b489327d1703bf45b8cdc3a66..f0ecc0dad41407949bc7ece402e59b03434a4ff5 100644
--- a/tests/extmod/uctypes_array_assign_native_le.py
+++ b/tests/extmod/uctypes_array_assign_native_le.py
@@ -70,16 +70,6 @@ S.arr10[0] = 0x11223344
 print(hex(S.arr10[0]))
 assert hex(S.arr10[0]) == "0x11223344"
 
-# assign int64
-S.arr11[0] = 0x11223344
-print(hex(S.arr11[0]))
-assert hex(S.arr11[0]) == "0x11223344"
-
-# assign uint64
-S.arr12[0] = 0x11223344
-print(hex(S.arr12[0]))
-assert hex(S.arr12[0]) == "0x11223344"
-
 # index out of range
 try:
     print(S.arr8[2])
diff --git a/tests/extmod/uctypes_array_assign_native_le.py.exp b/tests/extmod/uctypes_array_assign_native_le.py.exp
index 4efcdec668be167f28baecc37f308f953ea33f3e..9d67b1c777713321ce37e71d5c16315017aa3d11 100644
--- a/tests/extmod/uctypes_array_assign_native_le.py.exp
+++ b/tests/extmod/uctypes_array_assign_native_le.py.exp
@@ -6,8 +6,6 @@ True
 0x11
 0x1122
 0x11223344
-0x11223344
-0x11223344
 IndexError
 TypeError
 TypeError
diff --git a/tests/extmod/uctypes_array_assign_native_le_intbig.py b/tests/extmod/uctypes_array_assign_native_le_intbig.py
new file mode 100644
index 0000000000000000000000000000000000000000..f29a3b66e9532cca8ad1efed9835a88a097d343e
--- /dev/null
+++ b/tests/extmod/uctypes_array_assign_native_le_intbig.py
@@ -0,0 +1,43 @@
+import sys
+try:
+    import uctypes
+except ImportError:
+    print("SKIP")
+    sys.exit()
+
+if sys.byteorder != "little":
+    print("SKIP")
+    sys.exit()
+
+desc = {
+    # arr is array at offset 0, of UINT8 elements, array size is 2
+    "arr": (uctypes.ARRAY | 0, uctypes.UINT8 | 2),
+    # arr2 is array at offset 0, size 2, of structures defined recursively
+    "arr2": (uctypes.ARRAY | 0, 2, {"b": uctypes.UINT8 | 0}),
+    "arr3": (uctypes.ARRAY | 2, uctypes.UINT16 | 2),
+
+    # aligned
+    "arr5": (uctypes.ARRAY | 0, uctypes.UINT32 | 1),
+    "arr7": (uctypes.ARRAY | 0, 1, {"l": uctypes.UINT32 | 0}),
+
+    "arr8": (uctypes.ARRAY | 0, uctypes.INT8 | 1),
+    "arr9": (uctypes.ARRAY | 0, uctypes.INT16 | 1),
+    "arr10": (uctypes.ARRAY | 0, uctypes.INT32 | 1),
+    "arr11": (uctypes.ARRAY | 0, uctypes.INT64 | 1),
+    "arr12": (uctypes.ARRAY | 0, uctypes.UINT64| 1),
+    "arr13": (uctypes.ARRAY | 1, 1, {"l": {}}),
+}
+
+data = bytearray(8)
+
+S = uctypes.struct(uctypes.addressof(data), desc)
+
+# assign int64
+S.arr11[0] = 0x11223344
+print(hex(S.arr11[0]))
+assert hex(S.arr11[0]) == "0x11223344"
+
+# assign uint64
+S.arr12[0] = 0x11223344
+print(hex(S.arr12[0]))
+assert hex(S.arr12[0]) == "0x11223344"
diff --git a/tests/extmod/uctypes_array_assign_native_le_intbig.py.exp b/tests/extmod/uctypes_array_assign_native_le_intbig.py.exp
new file mode 100644
index 0000000000000000000000000000000000000000..0394e9ae11e2e8220d6ae78f2e94234ddeef8b55
--- /dev/null
+++ b/tests/extmod/uctypes_array_assign_native_le_intbig.py.exp
@@ -0,0 +1,2 @@
+0x11223344
+0x11223344