Mercurial > hg
annotate tests/test-filelog.py @ 51316:178e50edb4f8
changelog: stop useless enforcing split at the end of transaction
Changelogs are no longer created inline, and existing changelogs are
automatically split. Since we now enforce splitting at the start of any write,
we don't need to enforce splitting at the end of the transaction.
This has the nice side effect of killing the only user of "side_write".
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 11 Jan 2024 16:35:52 +0100 |
parents | 6000f5b25c9b |
children |
rev | line source |
---|---|
47500
23f5ed6dbcb1
run-tests: stop writing a `python3` symlink pointing to python2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
47012
diff
changeset
|
1 #!/usr/bin/env python |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
2 """ |
26098 | 3 Tests the behavior of filelog w.r.t. data starting with '\1\n' |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
4 """ |
29205
a0939666b836
py3: move up symbol imports to enforce import-checker rules
Yuya Nishihara <yuya@tcha.org>
parents:
28805
diff
changeset
|
5 |
47012
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
45830
diff
changeset
|
6 from mercurial.node import hex |
28743
83373fc2b287
py3: use absolute_import in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
26098
diff
changeset
|
7 from mercurial import ( |
83373fc2b287
py3: use absolute_import in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
26098
diff
changeset
|
8 hg, |
28805
efc739551c17
test-filelog: alias ui as uimod
Yuya Nishihara <yuya@tcha.org>
parents:
28744
diff
changeset
|
9 ui as uimod, |
28743
83373fc2b287
py3: use absolute_import in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
26098
diff
changeset
|
10 ) |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
11 |
30559
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
29205
diff
changeset
|
12 myui = uimod.ui.load() |
37933
f71c97d9b97b
tests: port test-filelog.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
13 repo = hg.repository(myui, path=b'.', create=True) |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
14 |
37933
f71c97d9b97b
tests: port test-filelog.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
15 fl = repo.file(b'foobar') |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
16 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
17 |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
18 def addrev(text, renamed=False): |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
19 if renamed: |
17486 | 20 # data doesn't matter. Just make sure filelog.renamed() returns True |
47012
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
45830
diff
changeset
|
21 meta = {b'copyrev': hex(repo.nullid), b'copy': b'bar'} |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
22 else: |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
23 meta = {} |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
24 |
15876
2de1244361aa
tests: lock before creating transaction in test-filelog
Mads Kiilerich <mads@kiilerich.com>
parents:
11540
diff
changeset
|
25 lock = t = None |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
26 try: |
15876
2de1244361aa
tests: lock before creating transaction in test-filelog
Mads Kiilerich <mads@kiilerich.com>
parents:
11540
diff
changeset
|
27 lock = repo.lock() |
37933
f71c97d9b97b
tests: port test-filelog.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
28 t = repo.transaction(b'commit') |
47012
d55b71393907
node: replace nullid and friends with nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
45830
diff
changeset
|
29 node = fl.add(text, meta, t, 0, repo.nullid, repo.nullid) |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
30 return node |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
31 finally: |
15876
2de1244361aa
tests: lock before creating transaction in test-filelog
Mads Kiilerich <mads@kiilerich.com>
parents:
11540
diff
changeset
|
32 if t: |
2de1244361aa
tests: lock before creating transaction in test-filelog
Mads Kiilerich <mads@kiilerich.com>
parents:
11540
diff
changeset
|
33 t.close() |
2de1244361aa
tests: lock before creating transaction in test-filelog
Mads Kiilerich <mads@kiilerich.com>
parents:
11540
diff
changeset
|
34 if lock: |
2de1244361aa
tests: lock before creating transaction in test-filelog
Mads Kiilerich <mads@kiilerich.com>
parents:
11540
diff
changeset
|
35 lock.release() |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
36 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
37 |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
38 def error(text): |
28744
6537e14301ef
py3: use print_function in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28743
diff
changeset
|
39 print('ERROR: ' + text) |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
40 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
41 |
37933
f71c97d9b97b
tests: port test-filelog.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
42 textwith = b'\1\nfoo' |
f71c97d9b97b
tests: port test-filelog.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
43 without = b'foo' |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
44 |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
45 node = addrev(textwith) |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
46 if not textwith == fl.read(node): |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
47 error('filelog.read for data starting with \\1\\n') |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
48 if fl.cmp(node, textwith) or not fl.cmp(node, without): |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
49 error('filelog.cmp for data starting with \\1\\n') |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
50 if fl.size(0) != len(textwith): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
51 error( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
52 'FIXME: This is a known failure of filelog.size for data starting ' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
53 'with \\1\\n' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37933
diff
changeset
|
54 ) |
11540
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
55 |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
56 node = addrev(textwith, renamed=True) |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
57 if not textwith == fl.read(node): |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
58 error('filelog.read for a renaming + data starting with \\1\\n') |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
59 if fl.cmp(node, textwith) or not fl.cmp(node, without): |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
60 error('filelog.cmp for a renaming + data starting with \\1\\n') |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
61 if fl.size(1) != len(textwith): |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
62 error('filelog.size for a renaming + data starting with \\1\\n') |
2370e270a29a
filelog: test behaviour for data starting with "\1\n"
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff
changeset
|
63 |
28744
6537e14301ef
py3: use print_function in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28743
diff
changeset
|
64 print('OK.') |