home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 July / maximum-cd-2011-07.iso / DiscContents / LibO_3.3.2_Win_x86_install_multi.exe / libreoffice1.cab / test_bigaddrspace.py < prev    next >
Encoding:
Python Source  |  2011-03-15  |  1.3 KB  |  47 lines

  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()
  47.