Mercurial > public > mercurial-scm > hg
diff tests/test-filelog.py @ 16498:d76ba2090e0c stable
tests: test test-filelog is python - rename to test-filelog.py
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 23 Apr 2012 01:57:17 +0200 |
parents | tests/test-filelog@2de1244361aa |
children | 73e3e368bd42 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-filelog.py Mon Apr 23 01:57:17 2012 +0200 @@ -0,0 +1,55 @@ +#!/usr/bin/env python +""" +Tests the behaviour of filelog w.r.t. data starting with '\1\n' +""" +from mercurial import ui, hg +from mercurial.node import nullid, hex + +myui = ui.ui() +repo = hg.repository(myui, path='.', create=True) + +fl = repo.file('foobar') + +def addrev(text, renamed=False): + if renamed: + # data doesnt matter. Just make sure filelog.renamed() returns True + meta = dict(copyrev=hex(nullid), copy='bar') + else: + meta = {} + + lock = t = None + try: + lock = repo.lock() + t = repo.transaction('commit') + node = fl.add(text, meta, t, 0, nullid, nullid) + return node + finally: + if t: + t.close() + if lock: + lock.release() + +def error(text): + print 'ERROR: ' + text + +textwith = '\1\nfoo' +without = 'foo' + +node = addrev(textwith) +if not textwith == fl.read(node): + error('filelog.read for data starting with \\1\\n') +if fl.cmp(node, textwith) or not fl.cmp(node, without): + error('filelog.cmp for data starting with \\1\\n') +if fl.size(0) != len(textwith): + error('FIXME: This is a known failure of filelog.size for data starting ' + 'with \\1\\n') + +node = addrev(textwith, renamed=True) +if not textwith == fl.read(node): + error('filelog.read for a renaming + data starting with \\1\\n') +if fl.cmp(node, textwith) or not fl.cmp(node, without): + error('filelog.cmp for a renaming + data starting with \\1\\n') +if fl.size(1) != len(textwith): + error('filelog.size for a renaming + data starting with \\1\\n') + +print 'OK.'