The list(xrange(sys.maxint / 4)) test blew up on 64-bit platforms.

Because ob_size is a 32-bit int but sys.maxint is LONG_MAX which is a
64-bit value, there's no way to make this test succeed on a 64-bit
platform.  So just skip it when sys.maxint isn't 0x7fffffff.

Backport candidate.
This commit is contained in:
Guido van Rossum 2002-09-11 18:32:30 +00:00
parent 4061cbee9c
commit c8060a68ff
1 changed files with 21 additions and 15 deletions

View File

@ -533,21 +533,27 @@ if list((0, 1, 2, 3)) != [0, 1, 2, 3]: raise TestFailed, 'list((0, 1, 2, 3))'
if list('') != []: raise TestFailed, 'list('')'
if list('spam') != ['s', 'p', 'a', 'm']: raise TestFailed, "list('spam')"
try:
# Verify clearing of bug #556025
# this assumes that the max data size (sys.maxint) == max address size
# this also assumes that the address size is at least 4 bytes
# with 8 byte addresses, the bug is not well tested
#
# Note: This test is expected to SEGV under Cygwin 1.3.12 or earlier
# due to a newlib bug. See the following mailing list thread for the
# details:
# http://sources.redhat.com/ml/newlib/2002/msg00369.html
list(xrange(sys.maxint / 4))
except MemoryError:
pass
else:
raise TestFailed, 'list(xrange(sys.maxint / 4))'
if sys.maxint == 0x7fffffff:
# This test can currently only work on 32-bit machines.
# XXX If/when PySequence_Length() returns a ssize_t, it should be
# XXX re-enabled.
try:
# Verify clearing of bug #556025.
# This assumes that the max data size (sys.maxint) == max
# address size this also assumes that the address size is at
# least 4 bytes with 8 byte addresses, the bug is not well
# tested
#
# Note: This test is expected to SEGV under Cygwin 1.3.12 or
# earlier due to a newlib bug. See the following mailing list
# thread for the details:
# http://sources.redhat.com/ml/newlib/2002/msg00369.html
list(xrange(sys.maxint / 4))
except MemoryError:
pass
else:
raise TestFailed, 'list(xrange(sys.maxint / 4))'
print 'long'
if long(314) != 314L: raise TestFailed, 'long(314)'