summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/basics/int_64_basics.py13
-rw-r--r--tests/extmod/uctypes_addressof.py7
2 files changed, 17 insertions, 3 deletions
diff --git a/tests/basics/int_64_basics.py b/tests/basics/int_64_basics.py
index 73a06b64b..289ea49b6 100644
--- a/tests/basics/int_64_basics.py
+++ b/tests/basics/int_64_basics.py
@@ -117,10 +117,21 @@ x = -4611686018427387904 # big
# sys.maxsize is a constant bigint, so test it's compatible with dynamic ones
import sys
if hasattr(sys, "maxsize"):
- print(sys.maxsize + 1 - 1 == sys.maxsize)
+ print(sys.maxsize - 1 + 1 == sys.maxsize)
else:
print(True) # No maxsize property in this config
# test extraction of big int value via mp_obj_get_int_maybe
x = 1 << 62
print('a' * (x + 4 - x))
+
+# negative shifts are invalid
+try:
+ print((1 << 48) >> -4)
+except ValueError as e:
+ print(e)
+
+try:
+ print((1 << 48) << -6)
+except ValueError as e:
+ print(e)
diff --git a/tests/extmod/uctypes_addressof.py b/tests/extmod/uctypes_addressof.py
index c83089d0f..213fcc05e 100644
--- a/tests/extmod/uctypes_addressof.py
+++ b/tests/extmod/uctypes_addressof.py
@@ -12,5 +12,8 @@ for i in range(8):
print(uctypes.addressof(uctypes.bytearray_at(1 << i, 8)))
# Test address that is bigger than the greatest small-int but still within the address range.
-large_addr = maxsize + 1
-print(uctypes.addressof(uctypes.bytearray_at(large_addr, 8)) == large_addr)
+try:
+ large_addr = maxsize + 1
+ print(uctypes.addressof(uctypes.bytearray_at(large_addr, 8)) == large_addr)
+except OverflowError:
+ print(True) # systems with 64-bit bigints will overflow on the above operation