annotate tests/test-contrib-check-code.t @ 40923:3ed77780f4a6

wireprotov2: send linknodes to emitfilerevisions() Previously, linknodes were calculated within emitfilerevisions() by using filectx.introrev(), which would always use the linkrev/linknode as recorded by storage. This is wrong for cases where the receiver doesn't have the changeset the linknode refers to. This commit changes the logic for linknode emission so the mapping of filenode to linknode is computed by the caller and passed into emitfilerevisions(). As part of the change, linknodes for "filesdata" in the haveparents=False case are now correct: the existing code performed a manifest walk and it was trivial to plug in the correct linknode. However, behavior for the haveparents=True case is still wrong because it relies on filtering linkrevs against the outgoing set in order to determine what to send. This will be fixed in a subsequent commit. The change test test-wireproto-exchangev2-shallow.t is a bit wonky. The test repo has 6 revisions. The changed test is performing a shallow clone with depth=1. So, only file data for revision 5 is present locally. So, the new behavior of associating the linknode with revision 5 for every file revision seems correct. Of course, when backfilling old revisions, we'll want to update the linknode. But this problem requires wire protocol support and we'll cross that bridge later. Differential Revision: https://phab.mercurial-scm.org/D5405
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 10 Dec 2018 18:04:12 +0000
parents ff47ba7a2903
children e2472b12c842
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
1 $ cat > correct.py <<NO_CHECK_EOF
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
2 > def toto(arg1, arg2):
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
3 > del arg2
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
4 > return (5 + 6, 9)
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
5 > NO_CHECK_EOF
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
6 $ cat > wrong.py <<NO_CHECK_EOF
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
7 > def toto( arg1, arg2):
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
8 > del(arg2)
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
9 > return ( 5+6, 9)
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
10 > NO_CHECK_EOF
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
11 $ cat > quote.py <<NO_CHECK_EOF
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
12 > # let's use quote in comments
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
13 > (''' ( 4x5 )
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
14 > but """\\''' and finally''',
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
15 > """let's fool checkpatch""", '1+2',
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
16 > '"""', 42+1, """and
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
17 > ( 4-1 ) """, "( 1+1 )\" and ")
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
18 > a, '\\\\\\\\', "\\\\\\" x-2", "c-1"
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
19 > NO_CHECK_EOF
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
20 $ cat > classstyle.py <<NO_CHECK_EOF
14763
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
21 > class newstyle_class(object):
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
22 > pass
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
23 >
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
24 > class oldstyle_class:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
25 > pass
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
26 >
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
27 > class empty():
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
28 > pass
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
29 >
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
30 > no_class = 1:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
31 > pass
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
32 > NO_CHECK_EOF
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
33 $ check_code="$TESTDIR"/../contrib/check-code.py
25199
e78447e61624 check-code: entirely drop the 'non-py24.py' file from the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25198
diff changeset
34 $ "$check_code" ./wrong.py ./correct.py ./quote.py ./classstyle.py
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
35 ./wrong.py:1:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
36 > def toto( arg1, arg2):
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
37 gratuitous whitespace in () or []
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
38 ./wrong.py:2:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
39 > del(arg2)
13077
6b8d2ee24ce2 coding style: fix yield used as a function
Thomas Arendsen Hein <thomas@jtah.de>
parents: 13026
diff changeset
40 Python keyword is not a function
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
41 ./wrong.py:3:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
42 > return ( 5+6, 9)
15281
aeeb2afcdc25 check-code: support multiline matches like try/except/finally
Matt Mackall <mpm@selenic.com>
parents: 14763
diff changeset
43 gratuitous whitespace in () or []
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
44 missing whitespace in expression
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
45 ./quote.py:5:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
46 > '"""', 42+1, """and
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
47 missing whitespace in expression
14763
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
48 ./classstyle.py:4:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
49 > class oldstyle_class:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
50 old-style class, use class foo(object)
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
51 ./classstyle.py:7:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
52 > class empty():
25140
317333e0793c check-code: fix the error message about 'class foo():'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25077
diff changeset
53 class foo() creates old style object, use class foo(object)
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
54 [1]
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
55 $ cat > python3-compat.py << NO_CHECK_EOF
18183
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
56 > foo <> bar
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
57 > reduce(lambda a, b: a + b, [1, 2, 3, 4])
20688
a61ed1c2d7a7 check-code: disallow use of dict(key=value) construction
Augie Fackler <raf@durin42.com>
parents: 20005
diff changeset
58 > dict(key=value)
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
59 > NO_CHECK_EOF
18183
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
60 $ "$check_code" python3-compat.py
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
61 python3-compat.py:1:
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
62 > foo <> bar
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
63 <> operator is not available in Python 3+, use !=
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
64 python3-compat.py:2:
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
65 > reduce(lambda a, b: a + b, [1, 2, 3, 4])
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
66 reduce is not available in Python 3+
20688
a61ed1c2d7a7 check-code: disallow use of dict(key=value) construction
Augie Fackler <raf@durin42.com>
parents: 20005
diff changeset
67 python3-compat.py:3:
a61ed1c2d7a7 check-code: disallow use of dict(key=value) construction
Augie Fackler <raf@durin42.com>
parents: 20005
diff changeset
68 > dict(key=value)
a61ed1c2d7a7 check-code: disallow use of dict(key=value) construction
Augie Fackler <raf@durin42.com>
parents: 20005
diff changeset
69 dict() is different in Py2 and 3 and is slower than {}
18183
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
70 [1]
13026
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
71
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
72 $ cat > foo.c <<NO_CHECK_EOF
28594
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
73 > void narf() {
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
74 > strcpy(foo, bar);
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
75 > // strcpy_s is okay, but this comment is not
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
76 > strcpy_s(foo, bar);
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
77 > }
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
78 > NO_CHECK_EOF
28594
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
79 $ "$check_code" ./foo.c
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
80 ./foo.c:2:
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
81 > strcpy(foo, bar);
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
82 don't use strcpy, use strlcpy or memcpy
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
83 ./foo.c:3:
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
84 > // strcpy_s is okay, but this comment is not
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
85 don't use //-style comments
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
86 [1]
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
87
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
88 $ cat > is-op.py <<NO_CHECK_EOF
13026
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
89 > # is-operator comparing number or string literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
90 > x = None
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
91 > y = x is 'foo'
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
92 > y = x is "foo"
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
93 > y = x is 5346
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
94 > y = x is -6
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
95 > y = x is not 'foo'
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
96 > y = x is not "foo"
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
97 > y = x is not 5346
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
98 > y = x is not -6
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
99 > NO_CHECK_EOF
13026
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
100
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
101 $ "$check_code" ./is-op.py
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
102 ./is-op.py:3:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
103 > y = x is 'foo'
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
104 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
105 ./is-op.py:4:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
106 > y = x is "foo"
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
107 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
108 ./is-op.py:5:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
109 > y = x is 5346
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
110 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
111 ./is-op.py:6:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
112 > y = x is -6
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
113 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
114 ./is-op.py:7:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
115 > y = x is not 'foo'
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
116 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
117 ./is-op.py:8:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
118 > y = x is not "foo"
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
119 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
120 ./is-op.py:9:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
121 > y = x is not 5346
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
122 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
123 ./is-op.py:10:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
124 > y = x is not -6
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
125 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
126 [1]
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
127
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
128 $ cat > for-nolineno.py <<NO_CHECK_EOF
15502
7917a104a285 check-code: add --nolineno option for hiding line numbers
Mads Kiilerich <mads@kiilerich.com>
parents: 15285
diff changeset
129 > except:
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
130 > NO_CHECK_EOF
18762
a91387a37f05 check-code: do not prepend "warning" to a failure message
Simon Heimberg <simohe@besonet.ch>
parents: 18183
diff changeset
131 $ "$check_code" for-nolineno.py --nolineno
a91387a37f05 check-code: do not prepend "warning" to a failure message
Simon Heimberg <simohe@besonet.ch>
parents: 18183
diff changeset
132 for-nolineno.py:0:
15502
7917a104a285 check-code: add --nolineno option for hiding line numbers
Mads Kiilerich <mads@kiilerich.com>
parents: 15285
diff changeset
133 > except:
18762
a91387a37f05 check-code: do not prepend "warning" to a failure message
Simon Heimberg <simohe@besonet.ch>
parents: 18183
diff changeset
134 naked except clause
15502
7917a104a285 check-code: add --nolineno option for hiding line numbers
Mads Kiilerich <mads@kiilerich.com>
parents: 15285
diff changeset
135 [1]
18180
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
136
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
137 $ cat > warning.t <<NO_CHECK_EOF
19422
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
138 > $ function warnonly {
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
139 > > }
20005
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
140 > $ diff -N aaa
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
141 > $ function onwarn {}
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
142 > NO_CHECK_EOF
19422
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
143 $ "$check_code" warning.t
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
144 $ "$check_code" --warn warning.t
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
145 warning.t:1:
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
146 > $ function warnonly {
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
147 warning: don't use 'function', use old style
20005
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
148 warning.t:3:
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
149 > $ diff -N aaa
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
150 warning: don't use 'diff -N'
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
151 warning.t:4:
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
152 > $ function onwarn {}
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
153 warning: don't use 'function', use old style
19422
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
154 [1]
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
155 $ cat > error.t <<NO_CHECK_EOF
32293
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
156 > $ [ foo == bar ]
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
157 > NO_CHECK_EOF
32293
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
158 $ "$check_code" error.t
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
159 error.t:1:
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
160 > $ [ foo == bar ]
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
161 [ foo == bar ] is a bashism, use [ foo = bar ] instead
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
162 [1]
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
163 $ rm error.t
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
164 $ cat > raise-format.py <<NO_CHECK_EOF
18180
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
165 > raise SomeException, message
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
166 > # this next line is okay
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
167 > raise SomeException(arg1, arg2)
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
168 > NO_CHECK_EOF
19494
3119dc155ac2 check-code: do not abort on an unreadable file, only report this
Simon Heimberg <simohe@besonet.ch>
parents: 19422
diff changeset
169 $ "$check_code" not-existing.py raise-format.py
3119dc155ac2 check-code: do not abort on an unreadable file, only report this
Simon Heimberg <simohe@besonet.ch>
parents: 19422
diff changeset
170 Skipping*not-existing.py* (glob)
18180
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
171 raise-format.py:1:
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
172 > raise SomeException, message
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
173 don't use old-style two-argument raise, use Exception(message)
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
174 [1]
19494
3119dc155ac2 check-code: do not abort on an unreadable file, only report this
Simon Heimberg <simohe@besonet.ch>
parents: 19422
diff changeset
175
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
176 $ cat <<NO_CHECK_EOF > tab.t
35315
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
177 > indent
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
178 > > heredoc
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
179 > NO_CHECK_EOF
35315
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
180 $ "$check_code" tab.t
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
181 tab.t:1:
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
182 > indent
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
183 don't use tabs to indent
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
184 [1]
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
185 $ rm tab.t
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
186
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
187 $ cat > rst.py <<NO_CHECK_EOF
19998
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
188 > """problematic rst text
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
189 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
190 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
191 > wrong
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
192 > """
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
193 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
194 > '''
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
195 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
196 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
197 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
198 > valid
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
199 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
200 > new text
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
201 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
202 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
203 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
204 > also valid
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
205 > '''
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
206 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
207 > """mixed
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
208 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
209 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
210 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
211 > good
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
212 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
213 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
214 > plus bad
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
215 > """
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
216 > NO_CHECK_EOF
19998
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
217 $ $check_code -w rst.py
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
218 rst.py:3:
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
219 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
220 warning: add two newlines after '.. note::'
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
221 rst.py:26:
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
222 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
223 warning: add two newlines after '.. note::'
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
224 [1]
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
225
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
226 $ cat > ./map-inside-gettext.py <<NO_CHECK_EOF
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
227 > print(_("map inside gettext %s" % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
228 >
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
229 > print(_("concatenating " " by " " space %s" % v))
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
230 > print(_("concatenating " + " by " + " '+' %s" % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
231 >
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
232 > print(_("mapping operation in different line %s"
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
233 > % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
234 >
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
235 > print(_(
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
236 > "leading spaces inside of '(' %s" % v))
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
237 > NO_CHECK_EOF
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
238 $ "$check_code" ./map-inside-gettext.py
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
239 ./map-inside-gettext.py:1:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
240 > print(_("map inside gettext %s" % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
241 don't use % inside _()
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
242 ./map-inside-gettext.py:3:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
243 > print(_("concatenating " " by " " space %s" % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
244 don't use % inside _()
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
245 ./map-inside-gettext.py:4:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
246 > print(_("concatenating " + " by " + " '+' %s" % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
247 don't use % inside _()
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
248 ./map-inside-gettext.py:6:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
249 > print(_("mapping operation in different line %s"
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
250 don't use % inside _()
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
251 ./map-inside-gettext.py:9:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
252 > print(_(
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
253 don't use % inside _()
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
254 [1]
21487
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
255
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
256 web templates
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
257
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
258 $ mkdir -p mercurial/templates
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
259 $ cat > mercurial/templates/example.tmpl <<NO_CHECK_EOF
21487
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
260 > {desc}
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
261 > {desc|escape}
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
262 > {desc|firstline}
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
263 > {desc|websub}
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
264 > NO_CHECK_EOF
21487
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
265
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
266 $ "$check_code" --warnings mercurial/templates/example.tmpl
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
267 mercurial/templates/example.tmpl:2:
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
268 > {desc|escape}
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
269 warning: follow desc keyword with either firstline or websub
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
270 [1]
29276
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
271
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
272 'string join across lines with no space' detection
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
273
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
274 $ cat > stringjoin.py <<NO_CHECK_EOF
29276
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
275 > foo = (' foo'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
276 > 'bar foo.'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
277 > 'bar foo:'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
278 > 'bar foo@'
29279
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
279 > 'bar foo%'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
280 > 'bar foo*'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
281 > 'bar foo+'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
282 > 'bar foo-'
29276
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
283 > 'bar')
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
284 > NO_CHECK_EOF
29397
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
285
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
286 'missing _() in ui message' detection
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
287
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
288 $ cat > uigettext.py <<NO_CHECK_EOF
29397
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
289 > ui.status("% 10s %05d % -3.2f %*s %%"
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
290 > # this use '\\\\' instead of '\\', because the latter in
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
291 > # heredoc on shell becomes just '\'
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
292 > '\\\\ \n \t \0'
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
293 > """12345
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
294 > """
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
295 > '''.:*+-=
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
296 > ''' "%-6d \n 123456 .:*+-= foobar")
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
297 > NO_CHECK_EOF
29397
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
298
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
299 superfluous pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
300
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
301 $ cat > superfluous_pass.py <<NO_CHECK_EOF
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
302 > # correct examples
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
303 > if foo:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
304 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
305 > else:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
306 > # comment-only line means still need pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
307 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
308 > def nothing():
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
309 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
310 > class empty(object):
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
311 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
312 > if whatever:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
313 > passvalue(value)
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
314 > # bad examples
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
315 > if foo:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
316 > "foo"
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
317 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
318 > else: # trailing comment doesn't fool checker
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
319 > wat()
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
320 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
321 > def nothing():
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
322 > "docstring means no pass"
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
323 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
324 > class empty(object):
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
325 > """multiline
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
326 > docstring also
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
327 > means no pass"""
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
328 > pass
40094
ff47ba7a2903 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 35315
diff changeset
329 > NO_CHECK_EOF
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
330
29398
2a54cf92c773 check-code: build translation table for repquote in global for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29397
diff changeset
331 (Checking multiple invalid files at once examines whether caching
2a54cf92c773 check-code: build translation table for repquote in global for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29397
diff changeset
332 translation table for repquote() works as expected or not. All files
2a54cf92c773 check-code: build translation table for repquote in global for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29397
diff changeset
333 should break rules depending on result of repquote(), in this case)
2a54cf92c773 check-code: build translation table for repquote in global for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29397
diff changeset
334
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
335 $ "$check_code" stringjoin.py uigettext.py superfluous_pass.py
29276
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
336 stringjoin.py:1:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
337 > foo = (' foo'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
338 string join across lines with no space
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
339 stringjoin.py:2:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
340 > 'bar foo.'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
341 string join across lines with no space
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
342 stringjoin.py:3:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
343 > 'bar foo:'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
344 string join across lines with no space
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
345 stringjoin.py:4:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
346 > 'bar foo@'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
347 string join across lines with no space
29279
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
348 stringjoin.py:5:
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
349 > 'bar foo%'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
350 string join across lines with no space
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
351 stringjoin.py:6:
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
352 > 'bar foo*'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
353 string join across lines with no space
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
354 stringjoin.py:7:
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
355 > 'bar foo+'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
356 string join across lines with no space
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
357 stringjoin.py:8:
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
358 > 'bar foo-'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
359 string join across lines with no space
29397
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
360 uigettext.py:1:
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
361 > ui.status("% 10s %05d % -3.2f %*s %%"
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
362 missing _() in ui message (use () to hide false-positives)
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
363 superfluous_pass.py:14:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
364 > if foo:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
365 omit superfluous pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
366 superfluous_pass.py:17:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
367 > else: # trailing comment doesn't fool checker
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
368 omit superfluous pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
369 superfluous_pass.py:20:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
370 > def nothing():
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
371 omit superfluous pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
372 superfluous_pass.py:23:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
373 > class empty(object):
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
374 omit superfluous pass
29397
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
375 [1]