annotate tests/test-contrib-check-code.t @ 42194:0da689a60163

fix: allow fixer tools to return metadata in addition to the file content With this change, fixer tools can be configured to output a JSON object that will be parsed and passed to hooks that can be used to print summaries of what code was formatted or perform other post-fixing work. The motivation for this change is to allow parallel executions of a "meta-formatter" tool to report back statistics, which are then aggregated and processed after all formatting has completed. Providing an extensible mechanism inside fix.py is far simpler, and more portable, than trying to make a tool like this communicate through some other channel. Differential Revision: https://phab.mercurial-scm.org/D6167
author Danny Hooper <hooper@google.com>
date Thu, 21 Mar 2019 18:32:45 -0700
parents 867883d454ea
children 55d132525155
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)
41761
e2472b12c842 contrib: enforce wrapping too-long lines with () instead of \
Augie Fackler <augie@google.com>
parents: 40094
diff changeset
10 > def badwrap():
e2472b12c842 contrib: enforce wrapping too-long lines with () instead of \
Augie Fackler <augie@google.com>
parents: 40094
diff changeset
11 > return 1 + \\
e2472b12c842 contrib: enforce wrapping too-long lines with () instead of \
Augie Fackler <augie@google.com>
parents: 40094
diff changeset
12 > 2
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
13 > 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
14 $ cat > quote.py <<NO_CHECK_EOF
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
15 > # let's use quote in comments
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
16 > (''' ( 4x5 )
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
17 > but """\\''' and finally''',
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
18 > """let's fool checkpatch""", '1+2',
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
19 > '"""', 42+1, """and
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
20 > ( 4-1 ) """, "( 1+1 )\" and ")
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
21 > 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
22 > 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
23 $ 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
24 > class newstyle_class(object):
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 oldstyle_class:
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 > class empty():
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
31 > pass
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
32 >
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
33 > no_class = 1:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
34 > 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
35 > NO_CHECK_EOF
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
36 $ 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
37 $ "$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
38 ./wrong.py:1:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
39 > def toto( arg1, arg2):
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
40 gratuitous whitespace in () or []
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
41 ./wrong.py:2:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
42 > del(arg2)
13077
6b8d2ee24ce2 coding style: fix yield used as a function
Thomas Arendsen Hein <thomas@jtah.de>
parents: 13026
diff changeset
43 Python keyword is not a function
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
44 ./wrong.py:3:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
45 > return ( 5+6, 9)
15281
aeeb2afcdc25 check-code: support multiline matches like try/except/finally
Matt Mackall <mpm@selenic.com>
parents: 14763
diff changeset
46 gratuitous whitespace in () or []
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
47 missing whitespace in expression
41761
e2472b12c842 contrib: enforce wrapping too-long lines with () instead of \
Augie Fackler <augie@google.com>
parents: 40094
diff changeset
48 ./wrong.py:5:
e2472b12c842 contrib: enforce wrapping too-long lines with () instead of \
Augie Fackler <augie@google.com>
parents: 40094
diff changeset
49 > return 1 + \
e2472b12c842 contrib: enforce wrapping too-long lines with () instead of \
Augie Fackler <augie@google.com>
parents: 40094
diff changeset
50 Use () to wrap long lines in Python, not \
12632
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
51 ./quote.py:5:
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
52 > '"""', 42+1, """and
6c98107f787e tests: unify test-check-code
Brodie Rao <brodie@bitheap.org>
parents: 11822
diff changeset
53 missing whitespace in expression
14763
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
54 ./classstyle.py:4:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
55 > class oldstyle_class:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
56 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
57 ./classstyle.py:7:
b071cd58af50 check-code: fix class style checking (with tests)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13077
diff changeset
58 > 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
59 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
60 [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
61 $ cat > python3-compat.py << NO_CHECK_EOF
18183
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 > 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
64 > 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
65 > NO_CHECK_EOF
18183
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
66 $ "$check_code" python3-compat.py
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
67 python3-compat.py:1:
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
68 > foo <> bar
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
69 <> operator is not available in Python 3+, use !=
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
70 python3-compat.py:2:
e1caaeb5a2ed check-code: disallow defunct <> operator
Augie Fackler <raf@durin42.com>
parents: 18180
diff changeset
71 > 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
72 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
73 python3-compat.py:3:
a61ed1c2d7a7 check-code: disallow use of dict(key=value) construction
Augie Fackler <raf@durin42.com>
parents: 20005
diff changeset
74 > dict(key=value)
a61ed1c2d7a7 check-code: disallow use of dict(key=value) construction
Augie Fackler <raf@durin42.com>
parents: 20005
diff changeset
75 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
76 [1]
13026
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
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 $ cat > foo.c <<NO_CHECK_EOF
28594
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
79 > void narf() {
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
80 > strcpy(foo, bar);
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
81 > // 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
82 > strcpy_s(foo, bar);
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
83 > }
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
84 > NO_CHECK_EOF
28594
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
85 $ "$check_code" ./foo.c
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
86 ./foo.c:2:
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
87 > strcpy(foo, bar);
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
88 don't use strcpy, use strlcpy or memcpy
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
89 ./foo.c:3:
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
90 > // 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
91 don't use //-style comments
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
92 [1]
d3990da51637 check-code: prevent use of strcpy
Augie Fackler <augie@google.com>
parents: 27367
diff changeset
93
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
94 $ 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
95 > # 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
96 > x = None
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
97 > y = x is 'foo'
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
98 > y = x is "foo"
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
99 > y = x is 5346
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
100 > y = x is -6
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
101 > 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
102 > 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
103 > 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
104 > 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
105 > NO_CHECK_EOF
13026
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
106
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
107 $ "$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
108 ./is-op.py:3:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
109 > y = x is 'foo'
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:4:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
112 > y = x is "foo"
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:5:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
115 > y = x is 5346
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:6:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
118 > y = x is -6
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:7:
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 'foo'
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:8:
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 "foo"
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 ./is-op.py:9:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
127 > 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
128 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
129 ./is-op.py:10:
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
130 > 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
131 object comparison with literal
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
132 [1]
53391819f195 check-code: catch Python 'is' comparing number or string literals
Adrian Buehlmann <adrian@cadifra.com>
parents: 12632
diff changeset
133
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
134 $ 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
135 > 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
136 > NO_CHECK_EOF
18762
a91387a37f05 check-code: do not prepend "warning" to a failure message
Simon Heimberg <simohe@besonet.ch>
parents: 18183
diff changeset
137 $ "$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
138 for-nolineno.py:0:
15502
7917a104a285 check-code: add --nolineno option for hiding line numbers
Mads Kiilerich <mads@kiilerich.com>
parents: 15285
diff changeset
139 > except:
18762
a91387a37f05 check-code: do not prepend "warning" to a failure message
Simon Heimberg <simohe@besonet.ch>
parents: 18183
diff changeset
140 naked except clause
15502
7917a104a285 check-code: add --nolineno option for hiding line numbers
Mads Kiilerich <mads@kiilerich.com>
parents: 15285
diff changeset
141 [1]
18180
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
142
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
143 $ 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
144 > $ function warnonly {
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
145 > > }
20005
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
146 > $ diff -N aaa
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
147 > $ 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
148 > NO_CHECK_EOF
19422
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
149 $ "$check_code" warning.t
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
150 $ "$check_code" --warn warning.t
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
151 warning.t:1:
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
152 > $ function warnonly {
d9e86d656017 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch>
parents: 18762
diff changeset
153 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
154 warning.t:3:
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
155 > $ diff -N aaa
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
156 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
157 warning.t:4:
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
158 > $ function onwarn {}
22154ec6fb8b check-code: prepend warning prefix only once, but for each warning
Simon Heimberg <simohe@besonet.ch>
parents: 19998
diff changeset
159 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
160 [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
161 $ cat > error.t <<NO_CHECK_EOF
32293
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
162 > $ [ 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
163 > NO_CHECK_EOF
32293
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
164 $ "$check_code" error.t
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
165 error.t:1:
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
166 > $ [ foo == bar ]
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
167 [ 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
168 [1]
ca727147ff9f style: ban [ foo == bar] bashism in tests
Augie Fackler <augie@google.com>
parents: 29398
diff changeset
169 $ 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
170 $ 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
171 > raise SomeException, message
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
172 > # this next line is okay
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
173 > 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
174 > 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
175 $ "$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
176 Skipping*not-existing.py* (glob)
18180
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
177 raise-format.py:1:
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
178 > raise SomeException, message
c582a71457e5 check-code: disallow two-argument form of raise
Augie Fackler <raf@durin42.com>
parents: 17620
diff changeset
179 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
180 [1]
19494
3119dc155ac2 check-code: do not abort on an unreadable file, only report this
Simon Heimberg <simohe@besonet.ch>
parents: 19422
diff changeset
181
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
182 $ cat <<NO_CHECK_EOF > tab.t
35315
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
183 > indent
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
184 > > 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
185 > NO_CHECK_EOF
35315
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
186 $ "$check_code" tab.t
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
187 tab.t:1:
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
188 > indent
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
189 don't use tabs to indent
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
190 [1]
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
191 $ rm tab.t
e223c0438f89 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 34384
diff changeset
192
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
193 $ 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
194 > """problematic rst text
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 > wrong
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
198 > """
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 > '''
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 > 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 > new text
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
207 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
208 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
209 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
210 > also valid
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
211 > '''
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 > """mixed
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
214 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
215 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
216 >
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
217 > good
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
218 >
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 > plus bad
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
221 > """
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
222 > NO_CHECK_EOF
19998
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
223 $ $check_code -w rst.py
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
224 rst.py:3:
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
225 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
226 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
227 rst.py:26:
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
228 > .. note::
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
229 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
230 [1]
289bbb294e82 check-code: check comment for '.. note::' without two newlines
Simon Heimberg <simohe@besonet.ch>
parents: 19501
diff changeset
231
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
232 $ 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
233 > 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
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(_("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
236 > 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
237 >
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
238 > 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
239 > % v))
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
240 >
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
241 > print(_(
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
242 > "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
243 > 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
244 $ "$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
245 ./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
246 > 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
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:3:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
249 > 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
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:4:
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 32293
diff changeset
252 > 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
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 ./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
255 > 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
256 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
257 ./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
258 > print(_(
21097
e8ef59b351c3 check-code: detect "% inside _()" when there are leading whitespaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20688
diff changeset
259 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
260 [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
261
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
262 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
263
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
264 $ 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
265 $ 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
266 > {desc}
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
267 > {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
268 > {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
269 > {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
270 > 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
271
c26464ce0781 check-code: check for consistent usage of the websub filter in hgweb templates
Steven Brown <StevenGBrown@gmail.com>
parents: 21097
diff changeset
272 $ "$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
273 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
274 > {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
275 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
276 [1]
29276
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
277
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
278 '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
279
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
280 $ 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
281 > foo = (' foo'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
282 > 'bar foo.'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
283 > 'bar foo:'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
284 > '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
285 > 'bar foo%'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
286 > 'bar foo*'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
287 > 'bar foo+'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
288 > 'bar foo-'
29276
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
289 > '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
290 > 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
291
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
292 '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
293
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
294 $ 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
295 > 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
296 > # 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
297 > # 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
298 > '\\\\ \n \t \0'
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
299 > """12345
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
300 > """
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
301 > '''.:*+-=
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
302 > ''' "%-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
303 > 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
304
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
305 superfluous pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
306
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
307 $ 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
308 > # correct examples
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
309 > if foo:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
310 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
311 > else:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
312 > # 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
313 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
314 > def nothing():
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
315 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
316 > 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
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 > if whatever:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
319 > passvalue(value)
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
320 > # bad examples
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
321 > if foo:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
322 > "foo"
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 > 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
325 > wat()
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
326 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
327 > def nothing():
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
328 > "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
329 > pass
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
330 > 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
331 > """multiline
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
332 > docstring also
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
333 > 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
334 > 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
335 > 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
336
29398
2a54cf92c773 check-code: build translation table for repquote in global for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29397
diff changeset
337 (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
338 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
339 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
340
34384
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
341 $ "$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
342 stringjoin.py:1:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
343 > foo = (' 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:2:
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
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
348 stringjoin.py:3:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
349 > 'bar foo:'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
350 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
351 stringjoin.py:4:
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
352 > 'bar foo@'
4dd530df4742 check-code: replace quoted characters correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 28594
diff changeset
353 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
354 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
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:6:
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
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
360 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
361 > 'bar foo+'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
362 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
363 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
364 > 'bar foo-'
438caf194160 check-code: make repquote distinguish more characters for exact detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29276
diff changeset
365 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
366 uigettext.py:1:
844f72885fb9 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29279
diff changeset
367 > 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
368 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
369 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
370 > if foo:
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:17:
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
373 > 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
374 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
375 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
376 > def nothing():
b52f22d9afa5 contrib: add a check to check-code to ban superfluous pass statements
Augie Fackler <augie@google.com>
parents: 33721
diff changeset
377 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
378 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
379 > 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
380 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
381 [1]
41826
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
382
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
383 Check code fragments embedded in test script
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
384
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
385 $ cat > embedded-code.t <<NO_CHECK_EOF
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
386 > code fragment in doctest style
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
387 > >>> x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
388 > ...
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
389 > ... x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
390 >
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
391 > code fragment in heredoc style
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
392 > $ python <<EOF
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
393 > > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
394 > > EOF
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
395 >
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
396 > code fragment in file heredoc style
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
397 > $ python > file.py <<EOF
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
398 > > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
399 > > EOF
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
400 > NO_CHECK_EOF
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
401 $ "$check_code" embedded-code.t
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
402 embedded-code.t:2:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
403 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
404 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
405 embedded-code.t:4:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
406 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
407 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
408 embedded-code.t:8:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
409 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
410 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
411 embedded-code.t:13:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
412 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
413 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
414 [1]
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
415
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
416 "max warnings per file" is shared by all embedded code fragments
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
417
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
418 $ "$check_code" --per-file=3 embedded-code.t
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
419 embedded-code.t:2:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
420 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
421 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
422 embedded-code.t:4:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
423 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
424 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
425 embedded-code.t:8:
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
426 > x = (1,2)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
427 missing whitespace after ,
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
428 (too many errors, giving up)
867883d454ea contrib: make check-code.py check code fragments embedded in test scripts
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 41761
diff changeset
429 [1]