python-2.5.2/win32/Lib/test/test_bigaddrspace.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     1 from test import test_support
       
     2 from test.test_support import bigaddrspacetest, MAX_Py_ssize_t
       
     3 
       
     4 import unittest
       
     5 import operator
       
     6 import sys
       
     7 
       
     8 
       
     9 class StrTest(unittest.TestCase):
       
    10 
       
    11     @bigaddrspacetest
       
    12     def test_concat(self):
       
    13         s1 = 'x' * MAX_Py_ssize_t
       
    14         self.assertRaises(OverflowError, operator.add, s1, '?')
       
    15 
       
    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)
       
    32 
       
    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)
       
    38 
       
    39 
       
    40 def test_main():
       
    41     test_support.run_unittest(StrTest)
       
    42 
       
    43 if __name__ == '__main__':
       
    44     if len(sys.argv) > 1:
       
    45         test_support.set_memlimit(sys.argv[1])
       
    46     test_main()