diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2011-01-14 20:19:57 +0000 |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2011-01-14 20:19:57 +0000 |
commit | 78ae1fb1b94c0f614fd01ba5693aaaead3d4699d (patch) | |
tree | 37a6f262d75972ba67a723f72c5a0f6d6e2ceeb8 /Lib/test/test_bigaddrspace.py | |
parent | 39be2a5210aa0be61c782aa2222ae8d018ea170f (diff) | |
download | cpython-git-78ae1fb1b94c0f614fd01ba5693aaaead3d4699d.tar.gz |
Merged revisions 87968,87971-87975 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r87968 | antoine.pitrou | 2011-01-12 21:46:37 +0100 (mer., 12 janv. 2011) | 4 lines
Fix the expected memory use of utf-8 encoding. Also, release the
one reference to a huge object even when an exception is raised.
........
r87971 | antoine.pitrou | 2011-01-12 22:19:59 +0100 (mer., 12 janv. 2011) | 3 lines
Make test skipping message nicer, and remove the rather useless "overhead" parameter.
........
r87972 | antoine.pitrou | 2011-01-12 22:40:20 +0100 (mer., 12 janv. 2011) | 3 lines
Fix @bigmemtest when no limit is given by the user (oops)
........
r87973 | antoine.pitrou | 2011-01-12 22:50:44 +0100 (mer., 12 janv. 2011) | 3 lines
More informative skip message in @bigaddrspace
........
r87974 | antoine.pitrou | 2011-01-12 22:58:39 +0100 (mer., 12 janv. 2011) | 3 lines
A better message again
........
r87975 | antoine.pitrou | 2011-01-12 23:02:45 +0100 (mer., 12 janv. 2011) | 3 lines
Fix test_bigaddrspace (some tests didn't trigger the expected MemoryError)
........
Diffstat (limited to 'Lib/test/test_bigaddrspace.py')
-rw-r--r-- | Lib/test/test_bigaddrspace.py | 68 |
1 files changed, 43 insertions, 25 deletions
diff --git a/Lib/test/test_bigaddrspace.py b/Lib/test/test_bigaddrspace.py index d383440356..b8c59d41d3 100644 --- a/Lib/test/test_bigaddrspace.py +++ b/Lib/test/test_bigaddrspace.py @@ -23,25 +23,34 @@ class BytesTest(unittest.TestCase): # Allocate a bytestring that's near the maximum size allowed by # the address space, and then try to build a new, larger one through # concatenation. - x = b"x" * (MAX_Py_ssize_t - 128) - self.assertRaises(OverflowError, operator.add, x, b"x" * 128) + try: + x = b"x" * (MAX_Py_ssize_t - 128) + self.assertRaises(OverflowError, operator.add, x, b"x" * 128) + finally: + x = None @bigaddrspacetest def test_optimized_concat(self): - x = b"x" * (MAX_Py_ssize_t - 128) + try: + x = b"x" * (MAX_Py_ssize_t - 128) - with self.assertRaises(OverflowError) as cm: - # this statement uses a fast path in ceval.c - x = x + b"x" * 128 + with self.assertRaises(OverflowError) as cm: + # this statement used a fast path in ceval.c + x = x + b"x" * 128 - with self.assertRaises(OverflowError) as cm: - # this statement uses a fast path in ceval.c - x += b"x" * 128 + with self.assertRaises(OverflowError) as cm: + # this statement used a fast path in ceval.c + x += b"x" * 128 + finally: + x = None @bigaddrspacetest def test_repeat(self): - x = b"x" * (MAX_Py_ssize_t - 128) - self.assertRaises(OverflowError, operator.mul, x, 128) + try: + x = b"x" * (MAX_Py_ssize_t - 128) + self.assertRaises(OverflowError, operator.mul, x, 128) + finally: + x = None class StrTest(unittest.TestCase): @@ -50,28 +59,37 @@ class StrTest(unittest.TestCase): @bigaddrspacetest def test_concat(self): - # Create a string half the size that would fill the address space - x = "x" * (MAX_Py_ssize_t // (2 * self.unicodesize)) - # Unicode objects trigger MemoryError in case an operation that's - # going to cause a size overflow is executed - self.assertRaises(MemoryError, operator.add, x, x) + try: + # Create a string that would fill almost the address space + x = "x" * int(MAX_Py_ssize_t // (1.1 * self.unicodesize)) + # Unicode objects trigger MemoryError in case an operation that's + # going to cause a size overflow is executed + self.assertRaises(MemoryError, operator.add, x, x) + finally: + x = None @bigaddrspacetest def test_optimized_concat(self): - x = "x" * (MAX_Py_ssize_t // (2 * self.unicodesize)) + try: + x = "x" * int(MAX_Py_ssize_t // (1.1 * self.unicodesize)) - with self.assertRaises(MemoryError) as cm: - # this statement uses a fast path in ceval.c - x = x + x + with self.assertRaises(MemoryError) as cm: + # this statement uses a fast path in ceval.c + x = x + x - with self.assertRaises(MemoryError) as cm: - # this statement uses a fast path in ceval.c - x += x + with self.assertRaises(MemoryError) as cm: + # this statement uses a fast path in ceval.c + x += x + finally: + x = None @bigaddrspacetest def test_repeat(self): - x = "x" * (MAX_Py_ssize_t // (2 * self.unicodesize)) - self.assertRaises(MemoryError, operator.mul, x, 2) + try: + x = "x" * int(MAX_Py_ssize_t // (1.1 * self.unicodesize)) + self.assertRaises(MemoryError, operator.mul, x, 2) + finally: + x = None def test_main(): |