tests/test-filelog
branchstable
changeset 11540 2370e270a29a
child 15876 2de1244361aa
equal deleted inserted replaced
11539:a463e3c50212 11540:2370e270a29a
       
     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.'