From: Guido van Rossum Date: Mon, 23 Sep 2002 20:59:28 +0000 (+0000) Subject: Backport 1.51 and 1.54 from trunk. X-Git-Tag: v2.2.2b1~150 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fb3a921c4270bf2cd75ed6f7265da23e501f387a;p=thirdparty%2FPython%2Fcpython.git 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. --- 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)'