mirror of
https://github.com/python/cpython.git
synced 2025-09-14 20:56:06 +00:00
require a long long data type (closes #27961)
This commit is contained in:
parent
b3b0767861
commit
ed4aa83ff7
32 changed files with 156 additions and 442 deletions
|
@ -16,22 +16,10 @@ byteorders = '', '@', '=', '<', '>', '!'
|
|||
def iter_integer_formats(byteorders=byteorders):
|
||||
for code in integer_codes:
|
||||
for byteorder in byteorders:
|
||||
if (byteorder in ('', '@') and code in ('q', 'Q') and
|
||||
not HAVE_LONG_LONG):
|
||||
continue
|
||||
if (byteorder not in ('', '@') and code in ('n', 'N')):
|
||||
continue
|
||||
yield code, byteorder
|
||||
|
||||
# Native 'q' packing isn't available on systems that don't have the C
|
||||
# long long type.
|
||||
try:
|
||||
struct.pack('q', 5)
|
||||
except struct.error:
|
||||
HAVE_LONG_LONG = False
|
||||
else:
|
||||
HAVE_LONG_LONG = True
|
||||
|
||||
def string_reverse(s):
|
||||
return s[::-1]
|
||||
|
||||
|
@ -159,9 +147,7 @@ class StructTest(unittest.TestCase):
|
|||
self.assertEqual(size, expected_size[code])
|
||||
|
||||
# native integer sizes
|
||||
native_pairs = 'bB', 'hH', 'iI', 'lL', 'nN'
|
||||
if HAVE_LONG_LONG:
|
||||
native_pairs += 'qQ',
|
||||
native_pairs = 'bB', 'hH', 'iI', 'lL', 'nN', 'qQ'
|
||||
for format_pair in native_pairs:
|
||||
for byteorder in '', '@':
|
||||
signed_size = struct.calcsize(byteorder + format_pair[0])
|
||||
|
@ -174,9 +160,8 @@ class StructTest(unittest.TestCase):
|
|||
self.assertLessEqual(4, struct.calcsize('l'))
|
||||
self.assertLessEqual(struct.calcsize('h'), struct.calcsize('i'))
|
||||
self.assertLessEqual(struct.calcsize('i'), struct.calcsize('l'))
|
||||
if HAVE_LONG_LONG:
|
||||
self.assertLessEqual(8, struct.calcsize('q'))
|
||||
self.assertLessEqual(struct.calcsize('l'), struct.calcsize('q'))
|
||||
self.assertLessEqual(8, struct.calcsize('q'))
|
||||
self.assertLessEqual(struct.calcsize('l'), struct.calcsize('q'))
|
||||
self.assertGreaterEqual(struct.calcsize('n'), struct.calcsize('i'))
|
||||
self.assertGreaterEqual(struct.calcsize('n'), struct.calcsize('P'))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue