##// END OF EJS Templates
filelog: test behaviour for data starting with "\1\n"...
Nicolas Dumazet -
r11540:2370e270 stable
parent child Browse files
Show More
@@ -0,0 +1,50
1 #!/usr/bin/env python
2 """
3 Tests the behaviour of filelog w.r.t. data starting with '\1\n'
4 """
5 from mercurial import ui, hg
6 from mercurial.node import nullid, hex
7
8 myui = ui.ui()
9 repo = hg.repository(myui, path='.', create=True)
10
11 fl = repo.file('foobar')
12
13 def addrev(text, renamed=False):
14 if renamed:
15 # data doesnt matter. Just make sure filelog.renamed() returns True
16 meta = dict(copyrev=hex(nullid), copy='bar')
17 else:
18 meta = {}
19
20 t = repo.transaction('commit')
21 try:
22 node = fl.add(text, meta, t, 0, nullid, nullid)
23 return node
24 finally:
25 t.close()
26
27 def error(text):
28 print 'ERROR: ' + text
29
30 textwith = '\1\nfoo'
31 without = 'foo'
32
33 node = addrev(textwith)
34 if not textwith == fl.read(node):
35 error('filelog.read for data starting with \\1\\n')
36 if fl.cmp(node, textwith) or not fl.cmp(node, without):
37 error('filelog.cmp for data starting with \\1\\n')
38 if fl.size(0) != len(textwith):
39 error('FIXME: This is a known failure of filelog.size for data starting '
40 'with \\1\\n')
41
42 node = addrev(textwith, renamed=True)
43 if not textwith == fl.read(node):
44 error('filelog.read for a renaming + data starting with \\1\\n')
45 if fl.cmp(node, textwith) or not fl.cmp(node, without):
46 error('filelog.cmp for a renaming + data starting with \\1\\n')
47 if fl.size(1) != len(textwith):
48 error('filelog.size for a renaming + data starting with \\1\\n')
49
50 print 'OK.'
@@ -0,0 +1,2
1 ERROR: FIXME: This is a known failure of filelog.size for data starting with \1\n
2 OK.
@@ -53,6 +53,7 class filelog(revlog.revlog):
53 if self.renamed(node):
53 if self.renamed(node):
54 return len(self.read(node))
54 return len(self.read(node))
55
55
56 # XXX if self.read(node).startswith("\1\n"), this returns (size+4)
56 return revlog.revlog.size(self, rev)
57 return revlog.revlog.size(self, rev)
57
58
58 def cmp(self, node, text):
59 def cmp(self, node, text):
General Comments 0
You need to be logged in to leave comments. Login now