From fb3a921c4270bf2cd75ed6f7265da23e501f387a Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 23 Sep 2002 20:59:28 +0000 Subject: [PATCH] Backport 1.51 and 1.54 from trunk. 1.51: Bug #556025: list(xrange(1e9)) --> seg fault Close the bug report again -- this time for Cygwin due to a newlib bug. See the following for the details: http://sources.redhat.com/ml/newlib/2002/msg00369.html Note that this commit is only a documentation (i.e., comment) change. 1.54: 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. --- Lib/test/test_b1.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/Lib/test/test_b1.py b/Lib/test/test_b1.py index e30f3bfcc0ad..a3c886fdaff3 100644 --- a/Lib/test/test_b1.py +++ b/Lib/test/test_b1.py @@ -499,16 +499,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 - 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)' -- 2.47.3