diff options
author | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2007-05-03 20:09:56 (GMT) |
---|---|---|
committer | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2007-05-03 20:09:56 (GMT) |
commit | 170eee9d6ae4ad4270cfd164c046c2381d746191 (patch) | |
tree | 75570ad8d2a1b630046f6753a6a7fd2c2c11a17c /Lib/test | |
parent | 19ac472ba12c41e201b91a45e21ebc0b079d3ca1 (diff) | |
download | cpython-170eee9d6ae4ad4270cfd164c046c2381d746191.zip cpython-170eee9d6ae4ad4270cfd164c046c2381d746191.tar.gz cpython-170eee9d6ae4ad4270cfd164c046c2381d746191.tar.bz2 |
Fix those parts in the testsuite that assumed that sys.maxint would cause overflow on x64. Now the testsuite is well behaved on that platform.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/string_tests.py | 4 | ||||
-rw-r--r-- | Lib/test/test_format.py | 8 | ||||
-rw-r--r-- | Lib/test/test_index.py | 9 | ||||
-rw-r--r-- | Lib/test/test_itertools.py | 6 | ||||
-rw-r--r-- | Lib/test/test_unittest.py | 6 |
5 files changed, 21 insertions, 12 deletions
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index baac252..3570ef1 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -2,7 +2,7 @@ Common tests shared by test_str, test_unicode, test_userstring and test_string. """ -import unittest, string, sys +import unittest, string, sys, struct from test import test_support from UserList import UserList @@ -671,7 +671,7 @@ class CommonTest(unittest.TestCase): def test_replace_overflow(self): # Check for overflow checking on 32 bit machines - if sys.maxint != 2147483647: + if sys.maxint != 2147483647 or struct.calcsize("P") > 4: return A2_16 = "A" * (2**16) self.checkraises(OverflowError, A2_16, "replace", "", A2_16) diff --git a/Lib/test/test_format.py b/Lib/test/test_format.py index 8bf5d6e..61e44f9 100644 --- a/Lib/test/test_format.py +++ b/Lib/test/test_format.py @@ -1,5 +1,7 @@ from test.test_support import verbose, have_unicode, TestFailed import sys +from test.test_support import MAX_Py_ssize_t +maxsize = MAX_Py_ssize_t # test string formatting operator (I am not sure if this is being tested # elsewhere but, surely, some of the given cases are *not* tested because @@ -238,11 +240,11 @@ class Foobar(long): test_exc('%o', Foobar(), TypeError, "expected string or Unicode object, long found") -if sys.maxint == 2**31-1: +if maxsize == 2**31-1: # crashes 2.2.1 and earlier: try: - "%*d"%(sys.maxint, -127) + "%*d"%(maxsize, -127) except MemoryError: pass else: - raise TestFailed, '"%*d"%(sys.maxint, -127) should fail' + raise TestFailed, '"%*d"%(maxsize, -127) should fail' diff --git a/Lib/test/test_index.py b/Lib/test/test_index.py index ecb566d..323b37b 100644 --- a/Lib/test/test_index.py +++ b/Lib/test/test_index.py @@ -1,7 +1,10 @@ import unittest from test import test_support import operator +import sys from sys import maxint +maxsize = test_support.MAX_Py_ssize_t +minsize = -maxsize-1 class oldstyle: def __index__(self): @@ -185,7 +188,7 @@ class OverflowTestCase(unittest.TestCase): def _getitem_helper(self, base): class GetItem(base): def __len__(self): - return maxint + return maxint #cannot return long here def __getitem__(self, key): return key def __getslice__(self, i, j): @@ -193,8 +196,8 @@ class OverflowTestCase(unittest.TestCase): x = GetItem() self.assertEqual(x[self.pos], self.pos) self.assertEqual(x[self.neg], self.neg) - self.assertEqual(x[self.neg:self.pos], (-1, maxint)) - self.assertEqual(x[self.neg:self.pos:1].indices(maxint), (0, maxint, 1)) + self.assertEqual(x[self.neg:self.pos], (maxint+minsize, maxsize)) + self.assertEqual(x[self.neg:self.pos:1].indices(maxsize), (0, maxsize, 1)) def test_getitem(self): self._getitem_helper(object) diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index a8f625c..6c362ad 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -5,6 +5,8 @@ from weakref import proxy import sys import operator import random +maxsize = test_support.MAX_Py_ssize_t +minsize = -maxsize-1 def onearg(x): 'Test function of one argument' @@ -52,7 +54,7 @@ class TestBasicOps(unittest.TestCase): self.assertEqual(take(2, zip('abc',count(3))), [('a', 3), ('b', 4)]) self.assertRaises(TypeError, count, 2, 3) self.assertRaises(TypeError, count, 'a') - self.assertRaises(OverflowError, list, islice(count(sys.maxint-5), 10)) + self.assertRaises(OverflowError, list, islice(count(maxsize-5), 10)) c = count(3) self.assertEqual(repr(c), 'count(3)') c.next() @@ -330,7 +332,7 @@ class TestBasicOps(unittest.TestCase): self.assertRaises(ValueError, islice, xrange(10), 1, 'a') self.assertRaises(ValueError, islice, xrange(10), 'a', 1, 1) self.assertRaises(ValueError, islice, xrange(10), 1, 'a', 1) - self.assertEqual(len(list(islice(count(), 1, 10, sys.maxint))), 1) + self.assertEqual(len(list(islice(count(), 1, 10, maxsize))), 1) def test_takewhile(self): data = [1, 3, 5, 20, 2, 4, 6, 8] diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py index 7e60548..8d5bb63 100644 --- a/Lib/test/test_unittest.py +++ b/Lib/test/test_unittest.py @@ -540,7 +540,8 @@ class Test_TestLoader(TestCase): # audioop should now be loaded, thanks to loadTestsFromName() self.failUnless(module_name in sys.modules) finally: - del sys.modules[module_name] + if module_name in sys.modules: + del sys.modules[module_name] ################################################################ ### Tests for TestLoader.loadTestsFromName() @@ -936,7 +937,8 @@ class Test_TestLoader(TestCase): # audioop should now be loaded, thanks to loadTestsFromName() self.failUnless(module_name in sys.modules) finally: - del sys.modules[module_name] + if module_name in sys.modules: + del sys.modules[module_name] ################################################################ ### /Tests for TestLoader.loadTestsFromNames() |