24 user: test |
24 user: test |
25 date: Thu Jan 01 00:00:00 1970 +0000 |
25 date: Thu Jan 01 00:00:00 1970 +0000 |
26 summary: change foo |
26 summary: change foo |
27 |
27 |
28 $ cat >> test.py << EOF |
28 $ cat >> test.py << EOF |
|
29 > from __future__ import print_function |
29 > from mercurial import changelog, vfs |
30 > from mercurial import changelog, vfs |
30 > from mercurial.node import * |
31 > from mercurial.node import * |
31 > |
32 > |
32 > class singlebyteread(object): |
33 > class singlebyteread(object): |
33 > def __init__(self, real): |
34 > def __init__(self, real): |
72 Test SEGV caused by bad revision passed to reachableroots() (issue4775): |
73 Test SEGV caused by bad revision passed to reachableroots() (issue4775): |
73 |
74 |
74 $ cd a |
75 $ cd a |
75 |
76 |
76 $ $PYTHON <<EOF |
77 $ $PYTHON <<EOF |
|
78 > from __future__ import print_function |
77 > from mercurial import changelog, vfs |
79 > from mercurial import changelog, vfs |
78 > cl = changelog.changelog(vfs.vfs('.hg/store')) |
80 > cl = changelog.changelog(vfs.vfs('.hg/store')) |
79 > print 'good heads:' |
81 > print('good heads:') |
80 > for head in [0, len(cl) - 1, -1]: |
82 > for head in [0, len(cl) - 1, -1]: |
81 > print'%s: %r' % (head, cl.reachableroots(0, [head], [0])) |
83 > print('%s: %r' % (head, cl.reachableroots(0, [head], [0]))) |
82 > print 'bad heads:' |
84 > print('bad heads:') |
83 > for head in [len(cl), 10000, -2, -10000, None]: |
85 > for head in [len(cl), 10000, -2, -10000, None]: |
84 > print '%s:' % head, |
86 > print('%s:' % head, end=' ') |
85 > try: |
87 > try: |
86 > cl.reachableroots(0, [head], [0]) |
88 > cl.reachableroots(0, [head], [0]) |
87 > print 'uncaught buffer overflow?' |
89 > print('uncaught buffer overflow?') |
88 > except (IndexError, TypeError) as inst: |
90 > except (IndexError, TypeError) as inst: |
89 > print inst |
91 > print(inst) |
90 > print 'good roots:' |
92 > print('good roots:') |
91 > for root in [0, len(cl) - 1, -1]: |
93 > for root in [0, len(cl) - 1, -1]: |
92 > print '%s: %r' % (root, cl.reachableroots(root, [len(cl) - 1], [root])) |
94 > print('%s: %r' % (root, cl.reachableroots(root, [len(cl) - 1], [root]))) |
93 > print 'out-of-range roots are ignored:' |
95 > print('out-of-range roots are ignored:') |
94 > for root in [len(cl), 10000, -2, -10000]: |
96 > for root in [len(cl), 10000, -2, -10000]: |
95 > print '%s: %r' % (root, cl.reachableroots(root, [len(cl) - 1], [root])) |
97 > print('%s: %r' % (root, cl.reachableroots(root, [len(cl) - 1], [root]))) |
96 > print 'bad roots:' |
98 > print('bad roots:') |
97 > for root in [None]: |
99 > for root in [None]: |
98 > print '%s:' % root, |
100 > print('%s:' % root, end=' ') |
99 > try: |
101 > try: |
100 > cl.reachableroots(root, [len(cl) - 1], [root]) |
102 > cl.reachableroots(root, [len(cl) - 1], [root]) |
101 > print 'uncaught error?' |
103 > print('uncaught error?') |
102 > except TypeError as inst: |
104 > except TypeError as inst: |
103 > print inst |
105 > print(inst) |
104 > EOF |
106 > EOF |
105 good heads: |
107 good heads: |
106 0: [0] |
108 0: [0] |
107 1: [0] |
109 1: [0] |
108 -1: [] |
110 -1: [] |
162 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio |
164 rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio |
163 0 1 1 -1 base 63 62 63 1.01613 63 0 0.00000 |
165 0 1 1 -1 base 63 62 63 1.01613 63 0 0.00000 |
164 1 2 1 -1 base 66 65 66 1.01538 66 0 0.00000 |
166 1 2 1 -1 base 66 65 66 1.01538 66 0 0.00000 |
165 |
167 |
166 $ cat <<EOF > test.py |
168 $ cat <<EOF > test.py |
|
169 > from __future__ import print_function |
167 > import sys |
170 > import sys |
168 > from mercurial import changelog, vfs |
171 > from mercurial import changelog, vfs |
169 > cl = changelog.changelog(vfs.vfs(sys.argv[1])) |
172 > cl = changelog.changelog(vfs.vfs(sys.argv[1])) |
170 > n0, n1 = cl.node(0), cl.node(1) |
173 > n0, n1 = cl.node(0), cl.node(1) |
171 > ops = [ |
174 > ops = [ |
175 > ('index_headrevs', lambda: cl.headrevs()), |
178 > ('index_headrevs', lambda: cl.headrevs()), |
176 > ('find_gca_candidates', lambda: cl.commonancestorsheads(n0, n1)), |
179 > ('find_gca_candidates', lambda: cl.commonancestorsheads(n0, n1)), |
177 > ('find_deepest', lambda: cl.ancestor(n0, n1)), |
180 > ('find_deepest', lambda: cl.ancestor(n0, n1)), |
178 > ] |
181 > ] |
179 > for l, f in ops: |
182 > for l, f in ops: |
180 > print l + ':', |
183 > print(l + ':', end=' ') |
181 > try: |
184 > try: |
182 > f() |
185 > f() |
183 > print 'uncaught buffer overflow?' |
186 > print('uncaught buffer overflow?') |
184 > except ValueError, inst: |
187 > except ValueError, inst: |
185 > print inst |
188 > print(inst) |
186 > EOF |
189 > EOF |
187 |
190 |
188 $ $PYTHON test.py limit/.hg/store |
191 $ $PYTHON test.py limit/.hg/store |
189 reachableroots: parent out of range |
192 reachableroots: parent out of range |
190 compute_phases_map_sets: parent out of range |
193 compute_phases_map_sets: parent out of range |