Mercurial > hg
annotate tests/test-gendoc.t @ 40093:726cfc47f17a
contrib: add an utility module to parse test scripts
This patch centralizes the logic to pick up code fragments embedded in
*.t script, in order to:
- apply checking with patterns in check-code.py on such embedded
code fragments
Now, check-code.py completely ignores embedded code
fragments. I'll post another patch series to check them.
- replace similar code path in contrib/import-checker.py
Current import-checker.py has problems below. Fixing each of them
is a little difficult, because parsing logic and pattern strings
are tightly coupled.
- overlook (or mis-detect) the end of inline script in doctest
style
8a8dd6e4a97a fixed a part of this issue, but not enough.
- it overlooks inline script in doctest style at the end of file
(and ignores invalid un-closed heredoc at the end of file, too)
- it overlooks code fragment in styles below
- "python <<EOF" (heredoc should be "cat > file <<EOF" style)
- "cat > foobar.py << ANYLIMIT" (limit mark should be "EOF")
- "cat << EOF > foobar.py" (filename should be placed before limit mark)
- "cat >> foobar.py << EOF" (appending is ignored)
- it is not extensible for other than python code fragments
(e.g. shell script, hgrc file, and so on)
This new module can detect python code fragments in styles below:
- inline script in doctest style (starting by " >>> " line)
- python invocation with heredoc script ("python <<EOF")
- python script in heredoc style (redirected into ".py" file)
As an example of extensibility of new module, this patch also contains
implementation to pick up code fragment below. This will be useful to
add additional restriction for them, for example.
- shell script in heredoc style (redirected into ".sh" file)
- hgrc configuration in heredoc style (redirected into hgrc or $HGRCPATH)
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 23 Aug 2018 12:25:54 +0900 |
parents | 5abc47d4ca6b |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20390
diff
changeset
|
1 #require docutils |
24043
1fdb1d909c79
test-gendoc: require gettext
Eric Sumner <ericsumner@fb.com>
parents:
22046
diff
changeset
|
2 #require gettext |
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20390
diff
changeset
|
3 |
12427 | 4 Test document extraction |
9446
57d682d7d2da
test-gendoc: test documentation generation
Martin Geisler <mg@lazybytes.net>
parents:
diff
changeset
|
5 |
12427 | 6 $ HGENCODING=UTF-8 |
7 $ export HGENCODING | |
20390
3fedc29a98bb
tests: use ls instead of find, all files are in the same directory
Simon Heimberg <simohe@besonet.ch>
parents:
19923
diff
changeset
|
8 $ { echo C; ls "$TESTDIR/../i18n"/*.po | sort; } | while read PO; do |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
14475
diff
changeset
|
9 > LOCALE=`basename "$PO" .po` |
12427 | 10 > echo "% extracting documentation from $LOCALE" |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
32940
diff
changeset
|
11 > LANGUAGE=$LOCALE "$PYTHON" "$TESTDIR/../doc/gendoc.py" >> gendoc-$LOCALE.txt 2> /dev/null || exit |
12427 | 12 > |
19923
52bc80d0769f
tests: test-gendoc.t checks if anything was translated
Simon Heimberg <simohe@besonet.ch>
parents:
19922
diff
changeset
|
13 > if [ $LOCALE != C ]; then |
28809
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
14 > if [ ! -f $TESTDIR/test-gendoc-$LOCALE.t ]; then |
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
15 > echo missing test-gendoc-$LOCALE.t |
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
16 > fi |
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
17 > cmp -s gendoc-C.txt gendoc-$LOCALE.txt && echo "** NOTHING TRANSLATED ($LOCALE) **" |
19923
52bc80d0769f
tests: test-gendoc.t checks if anything was translated
Simon Heimberg <simohe@besonet.ch>
parents:
19922
diff
changeset
|
18 > fi |
28809
7a1ad08b9ff5
tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org>
parents:
27733
diff
changeset
|
19 > done; true |
12427 | 20 % extracting documentation from C |
21 % extracting documentation from da | |
22 % extracting documentation from de | |
23 % extracting documentation from el | |
24 % extracting documentation from fr | |
25 % extracting documentation from it | |
26 % extracting documentation from ja | |
27 % extracting documentation from pt_BR | |
28 % extracting documentation from ro | |
14475
ac9a89dbdc00
test-gendoc: update for new Russian translation
Martin Geisler <mg@lazybytes.net>
parents:
12427
diff
changeset
|
29 % extracting documentation from ru |
12427 | 30 % extracting documentation from sv |
31 % extracting documentation from zh_CN | |
32 % extracting documentation from zh_TW |