summaryrefslogtreecommitdiff
path: root/tests/basics/struct1_intbig.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-11-05 22:35:02 +1100
committerDamien George <damien@micropython.org>2020-11-11 22:18:24 +1100
commit1fef5662ab96a27c2b279082607103bbe5da9de5 (patch)
treec8724e5b2a6ef3e22aa361e329041393fcfddbd4 /tests/basics/struct1_intbig.py
parent7789cd5f16b068f032e58be8e5e60bf17cb03d40 (diff)
py/mpz: Do sign extension in mpz_as_bytes for negative values.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/basics/struct1_intbig.py')
-rw-r--r--tests/basics/struct1_intbig.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/basics/struct1_intbig.py b/tests/basics/struct1_intbig.py
index 380293f36..24541c8a4 100644
--- a/tests/basics/struct1_intbig.py
+++ b/tests/basics/struct1_intbig.py
@@ -36,3 +36,11 @@ print(struct.unpack("<Q", b"\xff\xff\xff\xff\xff\xff\xff\xff"))
# check small int overflow
print(struct.unpack("<i", b'\xff\xff\xff\x7f'))
print(struct.unpack("<q", b'\xff\xff\xff\xff\xff\xff\xff\x7f'))
+
+# test with negative big integers that are actually small in magnitude
+bigzero = (1 << 70) - (1 << 70)
+for endian in "<>":
+ for type_ in "bhiq":
+ fmt = endian + type_
+ b = struct.pack(fmt, -2 + bigzero)
+ print(fmt, b, struct.unpack(fmt, b))