Mercurial > hg
annotate tests/test-check-code.t @ 49603:3eda36e9b3d6 stable
matcher: fix issues regex flag contained in pattern (issue6759)
Python 3.11 is now enforcing that flag must be at the beginning of the regex
This creates a serious regression for people using Python 3.11 with an hgignore
using flag in a "relre" pattern.
We now detect any flags in such pattern and "prepend" our ".*" pattern after them.
In addition, we now insert the flag in the regexp to only affect the pattern we
are rewriting. Otherwise, the regex built from the combined pattern would these
flags in the middle of it anyway.
As a side effect of this last change, we fix a bug… before this change regex
flag in a pattern would affect all combined patterns. That was bad and is not
longer the case.
The Rust code needs to be updated to fix that very bug, but we will do it in
another changeset.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 16 Nov 2022 13:05:01 +0100 |
parents | 2905b78fc52e |
children | 9fa3cda7449e |
rev | line source |
---|---|
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
1 #require test-repo |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
2 |
29219
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
28529
diff
changeset
|
3 $ . "$TESTDIR/helpers-testrepo.sh" |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
4 $ check_code="$TESTDIR"/../contrib/check-code.py |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
5 $ cd "$TESTDIR"/.. |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
6 |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
7 New errors are not allowed. Warnings are strongly discouraged. |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
8 (The writing "no-che?k-code" is for not skipping this file when checking.) |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
9 |
34395
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
10 $ testrepohg locate \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
11 > -X contrib/python-zstandard \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
12 > -X hgext/fsmonitor/pywatchman \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
13 > -X mercurial/thirdparty \ |
46374
e92ca942ddca
cext: add Python 3.10 support
Victor Stinner <vstinner@python.org>
parents:
45934
diff
changeset
|
14 > -X mercurial/pythoncapi_compat.h \ |
34395
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
15 > | sed 's-\\-/-g' | "$check_code" --warnings --per-file=0 - || false |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
16 Skipping contrib/automation/hgautomation/__init__.py it has no-che?k-code (glob) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
17 Skipping contrib/automation/hgautomation/aws.py it has no-che?k-code (glob) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
18 Skipping contrib/automation/hgautomation/cli.py it has no-che?k-code (glob) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42024
diff
changeset
|
19 Skipping contrib/automation/hgautomation/linux.py it has no-che?k-code (glob) |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
20 Skipping contrib/automation/hgautomation/pypi.py it has no-che?k-code (glob) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42024
diff
changeset
|
21 Skipping contrib/automation/hgautomation/ssh.py it has no-che?k-code (glob) |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42907
diff
changeset
|
22 Skipping contrib/automation/hgautomation/try_server.py it has no-che?k-code (glob) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
23 Skipping contrib/automation/hgautomation/windows.py it has no-che?k-code (glob) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
24 Skipping contrib/automation/hgautomation/winrm.py it has no-che?k-code (glob) |
43813
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43693
diff
changeset
|
25 Skipping contrib/fuzz/FuzzedDataProvider.h it has no-che?k-code (glob) |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43693
diff
changeset
|
26 Skipping contrib/fuzz/standalone_fuzz_target_runner.cc it has no-che?k-code (glob) |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43348
diff
changeset
|
27 Skipping contrib/packaging/hgpackaging/cli.py it has no-che?k-code (glob) |
41908
c2237fe1359e
packaging: split downloading code into own module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41907
diff
changeset
|
28 Skipping contrib/packaging/hgpackaging/downloads.py it has no-che?k-code (glob) |
41911
dc7827a9ba64
packaging: move Inno Setup core logic into a module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41908
diff
changeset
|
29 Skipping contrib/packaging/hgpackaging/inno.py it has no-che?k-code (glob) |
44763
94f4f2ec7dee
packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43813
diff
changeset
|
30 Skipping contrib/packaging/hgpackaging/pyoxidizer.py it has no-che?k-code (glob) |
41907
9da97f49d4f4
packaging: establish hgpackaging package
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41853
diff
changeset
|
31 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob) |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41915
diff
changeset
|
32 Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob) |
49468
2905b78fc52e
fsmonitor: use new dirstate APIs (issue6728)
Raphaël Gomès <rgomes@octobus.net>
parents:
48848
diff
changeset
|
33 Skipping hgext/fsmonitor/__init__.py it has no-che?k-code (glob) |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
34 Skipping i18n/polib.py it has no-che?k-code (glob) |
30253
b032a7b676c6
statprof: vendor statprof.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29442
diff
changeset
|
35 Skipping mercurial/statprof.py it has no-che?k-code (glob) |
48605
089cb4d6af5a
test-http-bad-server: move the extension in `testlib`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46774
diff
changeset
|
36 Skipping tests/testlib/badserverext.py it has no-che?k-code (glob) |
30540
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
37 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
38 @commands in debugcommands.py should be in alphabetical order. |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
39 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
40 >>> import re |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
41 >>> commands = [] |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
42 >>> with open('mercurial/debugcommands.py', 'rb') as fh: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
43 ... for line in fh: |
41547
f16c03c7a3d7
tests: use raw string in test-check-code.t
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40163
diff
changeset
|
44 ... m = re.match(br"^@command\('([a-z]+)", line) |
30540
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
45 ... if m: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
46 ... commands.append(m.group(1)) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
47 >>> scommands = list(sorted(commands)) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
48 >>> for i, command in enumerate(scommands): |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
49 ... if command != commands[i]: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
50 ... print('commands in debugcommands.py not sorted; first differing ' |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
51 ... 'command is %s; expected %s' % (commands[i], command)) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
52 ... break |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
53 |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
54 Prevent adding new files in the root directory accidentally. |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
55 |
33204
ddd65b4f3ae6
tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents:
33116
diff
changeset
|
56 $ testrepohg files 'glob:*' |
33583
b2c27d84f05c
phabricator: include the suggested arc config in the repo
Alex Gaynor <agaynor@mozilla.com>
parents:
33502
diff
changeset
|
57 .arcconfig |
34798
e33381d95930
clang-format: configuration for the clang-format source formatter
Augie Fackler <raf@durin42.com>
parents:
34579
diff
changeset
|
58 .clang-format |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
59 .editorconfig |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
60 .hgignore |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
61 .hgsigs |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
62 .hgtags |
35162
bdd2e18b54c5
hgweb: add .jshintrc with some basic rules
Anton Shestakov <av6@dwimlabs.net>
parents:
34798
diff
changeset
|
63 .jshintrc |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
64 CONTRIBUTING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
65 CONTRIBUTORS |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
66 COPYING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
67 Makefile |
34579
1b59287a1cfa
doc: rename README to README.rst
David Demelier <markand@malikania.fr>
parents:
34395
diff
changeset
|
68 README.rst |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
69 hg |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
70 hgeditor |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
71 hgweb.cgi |
46773
d13afdd1f6e2
pyproject: add config file
Augie Fackler <augie@google.com>
parents:
46456
diff
changeset
|
72 pyproject.toml |
45620
426294d06ddc
rust: move rustfmt.toml to repo root so it can be used by `hg fix`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44763
diff
changeset
|
73 rustfmt.toml |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
74 setup.py |
37804
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
75 |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
76 Prevent adding modules which could be shadowed by ancient .so/.dylib. |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
77 |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
78 $ testrepohg files \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
79 > mercurial/base85.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
80 > mercurial/bdiff.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
81 > mercurial/diffhelpers.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
82 > mercurial/mpatch.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
83 > mercurial/osutil.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
84 > mercurial/parsers.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
85 > mercurial/zstd.py |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
86 [1] |
40163
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
87 |
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
88 Keep python3 tests sorted: |
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
89 $ sort < contrib/python3-whitelist > $TESTTMP/py3sorted |
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
90 $ cmp contrib/python3-whitelist $TESTTMP/py3sorted || echo 'Please sort passing tests!' |
43693
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
91 |
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
92 Keep Windows line endings in check |
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
93 |
45934
eff26a0f664f
tests: use `testrepohg` in one more place in test-check-code.t
Matt Harbison <matt_harbison@yahoo.com>
parents:
45620
diff
changeset
|
94 $ testrepohg files 'set:eol(dos)' |
43693
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
95 contrib/win32/hg.bat |
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
96 contrib/win32/mercurial.ini |