Lines 1-5
Link Here
|
1 |
from test import test_support |
1 |
from test import test_support |
2 |
from test.test_support import bigmemtest, _1G, _2G |
2 |
from test.test_support import bigmemtest, _1G, _2G, _4G, precisionbigmemtest |
3 |
|
3 |
|
4 |
import unittest |
4 |
import unittest |
5 |
import operator |
5 |
import operator |
Lines 53-59
Link Here
|
53 |
lpadsize += 1 |
53 |
lpadsize += 1 |
54 |
self.assertEquals(s[lpadsize:-rpadsize], SUBSTR) |
54 |
self.assertEquals(s[lpadsize:-rpadsize], SUBSTR) |
55 |
self.assertEquals(s.strip(), SUBSTR.strip()) |
55 |
self.assertEquals(s.strip(), SUBSTR.strip()) |
56 |
|
56 |
|
|
|
57 |
@precisionbigmemtest(size=_2G - 1, memuse=1) |
58 |
def test_center_unicode(self, size): |
59 |
SUBSTR = u' abc def ghi' |
60 |
try: |
61 |
s = SUBSTR.center(size) |
62 |
except OverflowError: |
63 |
pass # acceptable on 32-bit |
64 |
else: |
65 |
self.assertEquals(len(s), size) |
66 |
lpadsize = rpadsize = (len(s) - len(SUBSTR)) // 2 |
67 |
if len(s) % 2: |
68 |
lpadsize += 1 |
69 |
self.assertEquals(s[lpadsize:-rpadsize], SUBSTR) |
70 |
self.assertEquals(s.strip(), SUBSTR.strip()) |
71 |
del s |
72 |
|
57 |
@bigmemtest(minsize=_2G, memuse=2) |
73 |
@bigmemtest(minsize=_2G, memuse=2) |
58 |
def test_count(self, size): |
74 |
def test_count(self, size): |
59 |
SUBSTR = ' abc def ghi' |
75 |
SUBSTR = ' abc def ghi' |
Lines 69-79
Link Here
|
69 |
def test_decode(self, size): |
85 |
def test_decode(self, size): |
70 |
s = '.' * size |
86 |
s = '.' * size |
71 |
self.assertEquals(len(s.decode('utf-8')), size) |
87 |
self.assertEquals(len(s.decode('utf-8')), size) |
|
|
88 |
|
89 |
def basic_encode_test(self, size, enc, c=u'.', expectedsize=None): |
90 |
if expectedsize is None: |
91 |
expectedsize = size |
92 |
|
93 |
s = c * size |
94 |
self.assertEquals(len(s.encode(enc)), expectedsize) |
72 |
|
95 |
|
73 |
@bigmemtest(minsize=_2G + 2, memuse=3) |
96 |
@bigmemtest(minsize=_2G + 2, memuse=3) |
74 |
def test_encode(self, size): |
97 |
def test_encode(self, size): |
75 |
s = u'.' * size |
98 |
return self.basic_encode_test(size, 'utf-8') |
76 |
self.assertEquals(len(s.encode('utf-8')), size) |
99 |
|
|
|
100 |
@precisionbigmemtest(size=_4G / 6 + 2, memuse=2) |
101 |
def test_encode_raw_unicode_escape(self, size): |
102 |
try: |
103 |
return self.basic_encode_test(size, 'raw_unicode_escape') |
104 |
except MemoryError: |
105 |
pass # acceptable on 32-bit |
106 |
|
107 |
@precisionbigmemtest(size=_4G / 5 + 70, memuse=3) |
108 |
def test_encode_utf7(self, size): |
109 |
try: |
110 |
return self.basic_encode_test(size, 'utf7') |
111 |
except MemoryError: |
112 |
pass # acceptable on 32-bit |
113 |
|
114 |
@precisionbigmemtest(size=_2G-1, memuse=2) |
115 |
def test_decodeascii(self, size): |
116 |
return self.basic_encode_test(size, 'ascii', c='A') |
117 |
|
118 |
@precisionbigmemtest(size=_4G / 5, memuse=6+2) |
119 |
def test_unicode_repr_oflw(self, size): |
120 |
try: |
121 |
s = u"\uAAAA"*size |
122 |
r = repr(s) |
123 |
except MemoryError: |
124 |
pass # acceptable on 32-bit |
125 |
else: |
126 |
self.failUnless(s == eval(r)) |
77 |
|
127 |
|
78 |
@bigmemtest(minsize=_2G, memuse=2) |
128 |
@bigmemtest(minsize=_2G, memuse=2) |
79 |
def test_endswith(self, size): |
129 |
def test_endswith(self, size): |
Lines 458-464
Link Here
|
458 |
self.assertEquals(s[-1], "'") |
508 |
self.assertEquals(s[-1], "'") |
459 |
self.assertEquals(s.count('\\'), size) |
509 |
self.assertEquals(s.count('\\'), size) |
460 |
self.assertEquals(s.count('0'), size * 2) |
510 |
self.assertEquals(s.count('0'), size * 2) |
461 |
|
511 |
|
|
|
512 |
@bigmemtest(minsize=2**32 / 5, memuse=6+2) |
513 |
def test_unicode_repr(self, size): |
514 |
s = u"\uAAAA" * size |
515 |
self.failUnless(len(repr(s)) > size) |
516 |
|
462 |
# This test is meaningful even with size < 2G, as long as the |
517 |
# This test is meaningful even with size < 2G, as long as the |
463 |
# doubled string is > 2G (but it tests more if both are > 2G :) |
518 |
# doubled string is > 2G (but it tests more if both are > 2G :) |
464 |
@bigmemtest(minsize=_1G + 2, memuse=3) |
519 |
@bigmemtest(minsize=_1G + 2, memuse=3) |
Lines 642-647
Link Here
|
642 |
def test_repeat_large(self, size): |
697 |
def test_repeat_large(self, size): |
643 |
return self.basic_test_repeat(size) |
698 |
return self.basic_test_repeat(size) |
644 |
|
699 |
|
|
|
700 |
@bigmemtest(minsize=_1G - 1, memuse=12) |
701 |
def test_repeat_large_2(self, size): |
702 |
return self.basic_test_repeat(size) |
703 |
|
704 |
@precisionbigmemtest(size=_1G - 1, memuse=9) |
705 |
def test_from_2G_generator(self, size): |
706 |
try: |
707 |
t = tuple(xrange(size)) |
708 |
except MemoryError: |
709 |
pass # acceptable on 32-bit |
710 |
else: |
711 |
count = 0 |
712 |
for item in t: |
713 |
self.assertEquals(item, count) |
714 |
count += 1 |
715 |
self.assertEquals(count, size) |
716 |
|
717 |
@precisionbigmemtest(size=_1G - 25, memuse=9) |
718 |
def test_from_almost_2G_generator(self, size): |
719 |
try: |
720 |
t = tuple(xrange(size)) |
721 |
count = 0 |
722 |
for item in t: |
723 |
self.assertEquals(item, count) |
724 |
count += 1 |
725 |
self.assertEquals(count, size) |
726 |
except MemoryError: |
727 |
pass # acceptable, expected on 32-bit |
728 |
|
645 |
# Like test_concat, split in two. |
729 |
# Like test_concat, split in two. |
646 |
def basic_test_repr(self, size): |
730 |
def basic_test_repr(self, size): |
647 |
t = (0,) * size |
731 |
t = (0,) * size |
Lines 957-965
Link Here
|
957 |
self.assertEquals(l[:10], [1] * 10) |
1041 |
self.assertEquals(l[:10], [1] * 10) |
958 |
self.assertEquals(l[-10:], [5] * 10) |
1042 |
self.assertEquals(l[-10:], [5] * 10) |
959 |
|
1043 |
|
|
|
1044 |
class BufferTest(unittest.TestCase): |
1045 |
|
1046 |
@precisionbigmemtest(size=_1G, memuse=4) |
1047 |
def test_repeat(self, size): |
1048 |
try: |
1049 |
b = buffer("AAAA")*size |
1050 |
except MemoryError: |
1051 |
pass # acceptable on 32-bit |
1052 |
else: |
1053 |
count = 0 |
1054 |
for c in b: |
1055 |
self.assertEquals(c, 'A') |
1056 |
count += 1 |
1057 |
self.assertEquals(count, size*4) |
1058 |
|
960 |
def test_main(): |
1059 |
def test_main(): |
961 |
test_support.run_unittest(StrTest, TupleTest, ListTest) |
1060 |
test_support.run_unittest(StrTest, TupleTest, ListTest, BufferTest) |
962 |
|
1061 |
|
|
|
1062 |
# Expected failures (crashers) |
1063 |
# del StrTest.test_center_unicode |
1064 |
del StrTest.test_decodeascii |
1065 |
# del StrTest.test_encode_utf32 |
1066 |
# del StrTest.test_encode_utf7 |
1067 |
# del StrTest.test_encode_raw_unicode_escape |
1068 |
# |
1069 |
# del TupleTest.test_from_2G_generator |
1070 |
# |
1071 |
# del BufferTest.test_repeat |
1072 |
|
963 |
if __name__ == '__main__': |
1073 |
if __name__ == '__main__': |
964 |
if len(sys.argv) > 1: |
1074 |
if len(sys.argv) > 1: |
965 |
test_support.set_memlimit(sys.argv[1]) |
1075 |
test_support.set_memlimit(sys.argv[1]) |