move sections
[python/dscho.git] / Lib / test / test_bigaddrspace.py
blob8c215fe09ad6ba5b157a0dd3751f651b695bc794
1 from test import test_support
2 from test.test_support import bigaddrspacetest, MAX_Py_ssize_t
4 import unittest
5 import operator
6 import sys
9 class StrTest(unittest.TestCase):
11 @bigaddrspacetest
12 def test_concat(self):
13 s1 = 'x' * MAX_Py_ssize_t
14 self.assertRaises(OverflowError, operator.add, s1, '?')
16 @bigaddrspacetest
17 def test_optimized_concat(self):
18 x = 'x' * MAX_Py_ssize_t
19 try:
20 x = x + '?' # this statement uses a fast path in ceval.c
21 except OverflowError:
22 pass
23 else:
24 self.fail("should have raised OverflowError")
25 try:
26 x += '?' # this statement uses a fast path in ceval.c
27 except OverflowError:
28 pass
29 else:
30 self.fail("should have raised OverflowError")
31 self.assertEquals(len(x), MAX_Py_ssize_t)
33 ### the following test is pending a patch
34 # (http://mail.python.org/pipermail/python-dev/2006-July/067774.html)
35 #@bigaddrspacetest
36 #def test_repeat(self):
37 # self.assertRaises(OverflowError, operator.mul, 'x', MAX_Py_ssize_t + 1)
40 def test_main():
41 test_support.run_unittest(StrTest)
43 if __name__ == '__main__':
44 if len(sys.argv) > 1:
45 test_support.set_memlimit(sys.argv[1])
46 test_main()