diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py index d94883c32f6..ba1165671f3 100755 --- a/Lib/test/test_array.py +++ b/Lib/test/test_array.py @@ -106,6 +106,17 @@ class ArrayReconstructorTest(unittest.TestCase): [-1<<31, (1<<31)-1, 0]), (['i', 'l'], SIGNED_INT32_BE, '>iii', [-1<<31, (1<<31)-1, 0]), + (['L'], UNSIGNED_INT64_LE, 'QQQQ', + [1<<31, (1<<31)-1, 0, (1<<32)-1]), + (['l'], SIGNED_INT64_LE, 'qqq', + [-1<<31, (1<<31)-1, 0]), + # The following tests for INT64 will raise an OverflowError + # when run on a 32-bit machine. The tests are simply skipped + # in that case. (['L'], UNSIGNED_INT64_LE, 'QQQQ', @@ -127,7 +138,10 @@ class ArrayReconstructorTest(unittest.TestCase): valid_typecodes, mformat_code, struct_fmt, values = testcase arraystr = struct.pack(struct_fmt, *values) for typecode in valid_typecodes: - a = array.array(typecode, values) + try: + a = array.array(typecode, values) + except OverflowError: + continue # Skip this test case. b = array_reconstructor( array.array, typecode, mformat_code, arraystr) self.assertEqual(a, b,