summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorKristján Valur Jónsson <kristjan@ccpgames.com>2007-05-03 20:09:56 (GMT)
committerKristján Valur Jónsson <kristjan@ccpgames.com>2007-05-03 20:09:56 (GMT)
commit170eee9d6ae4ad4270cfd164c046c2381d746191 (patch)
tree75570ad8d2a1b630046f6753a6a7fd2c2c11a17c /Lib/test
parent19ac472ba12c41e201b91a45e21ebc0b079d3ca1 (diff)
downloadcpython-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.py4
-rw-r--r--Lib/test/test_format.py8
-rw-r--r--Lib/test/test_index.py9
-rw-r--r--Lib/test/test_itertools.py6
-rw-r--r--Lib/test/test_unittest.py6
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()