Mercurial > hg
annotate tests/test-i18n.t @ 42619:20d0e59be79b
tests: show the files fields of changelogs for many merges
I don't think there's coverage for many of the subtle cases, and I
found it hard to understand what the code is doing by reading it. The
test takes 40s to run on a laptop, or 9s with --chg.
I have yet to find a description of what the files field is supposed
to be for merges. I thought it could be one of:
1. the files added/modified/removed relative to p1 (wouldn't seem
useful, but `hg diff -c -r mergerev` has this behavior)
2. the files with filelog nodes not in either parent (i.e., what is
needed to create a bundle out of a commit)
3. the files added/removed/modified files by merge itself [1]
It's clearly not 1, because file contents merges are symmetric. It's
clearly not 2 because removed files and exec bit changes are
listed. It's also not 3 but I think it's intended to be 3 and the
differences are bugs.
Assuming 3, the test shows that, for merges, the list of files both
overapproximates and underapproximates. All the cases involve file
changes not in the filelog but in the manifest (existence of file
at revision, exec bit and file vs symlink).
I didn't look at all underapproximations, but they looked minor. The
two overapproximations are problematic though because they both cause
potentially long lists of files when merging cleanly.
[1] even what it means for the merge commit itself to change a file is
not completely trivial. A file in the merge being the same as in one
of the parent is too lax as it would consider that merges change
nothing when they revert all the changes done on one side. The
criteria used in the test and in the next commit for "merge didn't
touch a file" is:
- the parents and the merge all have the same file
- or, one parent didn't touch the file and the other parent contains
the same file as the merge
Differential Revision: https://phab.mercurial-scm.org/D6612
author | Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> |
---|---|
date | Tue, 02 Jul 2019 12:55:51 -0400 |
parents | 5abc47d4ca6b |
children | 95c4cca641f6 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
21024
diff
changeset
|
1 (Translations are optional) |
13442
bb107a31820e
test-i18n: make test conditional on msgfmt availability
Martin Geisler <mg@lazybytes.net>
parents:
13414
diff
changeset
|
2 |
26252
a3edce86f430
test-i18n: always run non gettext tests
timeless@mozdev.org
parents:
22046
diff
changeset
|
3 #if gettext no-outer-repo |
17015
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
16981
diff
changeset
|
4 |
13414 | 5 Test that translations are compiled and installed correctly. |
6 | |
7 Default encoding in tests is "ascii" and the translation is encoded | |
8 using the "replace" error handler: | |
9 | |
10 $ LANGUAGE=pt_BR hg tip | |
14920
56848e2bb0c5
test-i18n, i18n-pt_BR: updated test message changed in 41c3a71c318d
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
14914
diff
changeset
|
11 abortado: n?o foi encontrado um reposit?rio em '$TESTTMP' (.hg n?o encontrado)! |
13414 | 12 [255] |
13 | |
21024
7731a2281cf0
spelling: fixes from spell checker
Mads Kiilerich <madski@unity3d.com>
parents:
20338
diff
changeset
|
14 Using a more accommodating encoding: |
13414 | 15 |
16 $ HGENCODING=UTF-8 LANGUAGE=pt_BR hg tip | |
14920
56848e2bb0c5
test-i18n, i18n-pt_BR: updated test message changed in 41c3a71c318d
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
14914
diff
changeset
|
17 abortado: n\xc3\xa3o foi encontrado um reposit\xc3\xb3rio em '$TESTTMP' (.hg n\xc3\xa3o encontrado)! (esc) |
13414 | 18 [255] |
19 | |
20 Different encoding: | |
21 | |
22 $ HGENCODING=Latin-1 LANGUAGE=pt_BR hg tip | |
14920
56848e2bb0c5
test-i18n, i18n-pt_BR: updated test message changed in 41c3a71c318d
Wagner Bruna <wbruna@softwareexpress.com.br>
parents:
14914
diff
changeset
|
23 abortado: n\xe3o foi encontrado um reposit\xf3rio em '$TESTTMP' (.hg n\xe3o encontrado)! (esc) |
13414 | 24 [255] |
16895
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
25 |
17015
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
16981
diff
changeset
|
26 #endif |
73d20de5f30b
tests: add missing no-outer-repo requirements
Mads Kiilerich <mads@kiilerich.com>
parents:
16981
diff
changeset
|
27 |
26252
a3edce86f430
test-i18n: always run non gettext tests
timeless@mozdev.org
parents:
22046
diff
changeset
|
28 #if gettext |
a3edce86f430
test-i18n: always run non gettext tests
timeless@mozdev.org
parents:
22046
diff
changeset
|
29 |
16895
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
30 Test keyword search in translated help text: |
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
31 |
30943
a0e4df5a4d5d
tests: update test-i18n.t to not depend on the pager extension
Augie Fackler <augie@google.com>
parents:
26252
diff
changeset
|
32 $ HGENCODING=UTF-8 LANGUAGE=de hg help -k Aktualisiert |
20338
b9e7af5bd5e5
i18n-de: update many fuzzy entries and translate some simple ones
Simon Heimberg <simohe@besonet.ch>
parents:
20152
diff
changeset
|
33 Themen: |
16895
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
34 |
30943
a0e4df5a4d5d
tests: update test-i18n.t to not depend on the pager extension
Augie Fackler <augie@google.com>
parents:
26252
diff
changeset
|
35 subrepos Unterarchive |
16895
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
36 |
30943
a0e4df5a4d5d
tests: update test-i18n.t to not depend on the pager extension
Augie Fackler <augie@google.com>
parents:
26252
diff
changeset
|
37 Befehle: |
16895
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
38 |
30943
a0e4df5a4d5d
tests: update test-i18n.t to not depend on the pager extension
Augie Fackler <augie@google.com>
parents:
26252
diff
changeset
|
39 pull Ruft \xc3\x84nderungen von der angegebenen Quelle ab (esc) |
a0e4df5a4d5d
tests: update test-i18n.t to not depend on the pager extension
Augie Fackler <augie@google.com>
parents:
26252
diff
changeset
|
40 update Aktualisiert das Arbeitsverzeichnis (oder wechselt die Version) |
16895
430714e2a876
help: test keyword search in translated text.
Olav Reinert <seroton10@gmail.com>
parents:
14920
diff
changeset
|
41 |
26252
a3edce86f430
test-i18n: always run non gettext tests
timeless@mozdev.org
parents:
22046
diff
changeset
|
42 #endif |
a3edce86f430
test-i18n: always run non gettext tests
timeless@mozdev.org
parents:
22046
diff
changeset
|
43 |
20152
84939b728749
i18n: add the tool to check Mercurial specific translation problems in *.po
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17015
diff
changeset
|
44 Check Mercurial specific translation problems in each *.po files, and |
84939b728749
i18n: add the tool to check Mercurial specific translation problems in *.po
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17015
diff
changeset
|
45 tool itself by doctest |
84939b728749
i18n: add the tool to check Mercurial specific translation problems in *.po
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17015
diff
changeset
|
46 |
84939b728749
i18n: add the tool to check Mercurial specific translation problems in *.po
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17015
diff
changeset
|
47 $ cd "$TESTDIR"/../i18n |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
36645
diff
changeset
|
48 $ "$PYTHON" check-translation.py *.po |
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
36645
diff
changeset
|
49 $ "$PYTHON" check-translation.py --doctest |
20152
84939b728749
i18n: add the tool to check Mercurial specific translation problems in *.po
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17015
diff
changeset
|
50 $ cd $TESTTMP |
34660
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
51 |
34688
a88166a4dce3
test-i18n: guard gettext test appropriately
Yuya Nishihara <yuya@tcha.org>
parents:
34660
diff
changeset
|
52 #if gettext |
a88166a4dce3
test-i18n: guard gettext test appropriately
Yuya Nishihara <yuya@tcha.org>
parents:
34660
diff
changeset
|
53 |
34660
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
54 Check i18n cache isn't reused after encoding change: |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
55 |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
56 $ cat > $TESTTMP/encodingchange.py << EOF |
36645
7bc33d677c0c
tests: fix various test-check-module-imports.t violations
Augie Fackler <augie@google.com>
parents:
34688
diff
changeset
|
57 > from mercurial.i18n import _ |
34660
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
58 > from mercurial import encoding, registrar |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
59 > cmdtable = {} |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
60 > command = registrar.command(cmdtable) |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
61 > @command(b'encodingchange', norepo=True) |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
62 > def encodingchange(ui): |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
63 > for encode in (b'ascii', b'UTF-8', b'ascii', b'UTF-8'): |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
64 > encoding.encoding = encode |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
65 > ui.write(b'%s\n' % _(b'(EXPERIMENTAL)')) |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
66 > EOF |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
67 |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
68 $ LANGUAGE=ja hg --config extensions.encodingchange=$TESTTMP/encodingchange.py encodingchange |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
69 (?????) |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
70 (\xe5\xae\x9f\xe9\xa8\x93\xe7\x9a\x84\xe5\xae\x9f\xe8\xa3\x85) (esc) |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
71 (?????) |
d00ec62d156f
i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org>
parents:
32940
diff
changeset
|
72 (\xe5\xae\x9f\xe9\xa8\x93\xe7\x9a\x84\xe5\xae\x9f\xe8\xa3\x85) (esc) |
34688
a88166a4dce3
test-i18n: guard gettext test appropriately
Yuya Nishihara <yuya@tcha.org>
parents:
34660
diff
changeset
|
73 |
a88166a4dce3
test-i18n: guard gettext test appropriately
Yuya Nishihara <yuya@tcha.org>
parents:
34660
diff
changeset
|
74 #endif |