[Python-checkins] python/dist/src/Lib/test test_xrange.py,1.1,1.2
tim_one at users.sourceforge.net
tim_one at users.sourceforge.net
Sun Aug 8 09:17:42 CEST 2004
Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32294/Lib/test
Modified Files:
test_xrange.py
Log Message:
Bug 1003935: xrange overflows
Added XXX comment about why the undocumented PyRange_New() API function
is too broken to be worth the considerable pain of repairing.
Changed range_new() to stop using PyRange_New(). This fixes a variety
of bogus errors. Nothing in the core uses PyRange_New() now.
Documented that xrange() is intended to be simple and fast, and that
CPython restricts its arguments, and length of its result sequence, to
native C longs.
Added some tests that failed before the patch, and repaired a test that
relied on a bogus OverflowError getting raised.
Index: test_xrange.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_xrange.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** test_xrange.py 8 Jul 2004 01:59:55 -0000 1.1
--- test_xrange.py 8 Aug 2004 07:17:39 -0000 1.2
***************
*** 49,56 ****
self.assertRaises(TypeError, xrange, 0, 42, "spam")
! self.assertRaises(OverflowError, xrange, 0, sys.maxint, sys.maxint-1)
self.assertRaises(OverflowError, xrange, -sys.maxint, sys.maxint)
self.assertRaises(OverflowError, xrange, 0, 2*sys.maxint)
def test_main():
test.test_support.run_unittest(XrangeTest)
--- 49,61 ----
self.assertRaises(TypeError, xrange, 0, 42, "spam")
! self.assertEqual(len(xrange(0, sys.maxint, sys.maxint-1)), 2)
!
self.assertRaises(OverflowError, xrange, -sys.maxint, sys.maxint)
self.assertRaises(OverflowError, xrange, 0, 2*sys.maxint)
+ self.assertEqual(len(xrange(-sys.maxint, sys.maxint, 2)),
+ sys.maxint)
+ self.assertRaises(OverflowError, xrange, -sys.maxint-1, sys.maxint, 2)
+
def test_main():
test.test_support.run_unittest(XrangeTest)
More information about the Python-checkins
mailing list