annotate tests/test-check-code.t @ 49993:2f348babe30d

transaction: clarify the "quick abort" scenario Right now, the transaction has a code-pass to do a "quick abort" that skip most¹ (too much) of the logic when the right condition are detected² We are about to improve this logic in multiple aspect. We clarify the code first. The conditional return in `_can_quick_abort` looks a bit weird because we are about to make them more complex very soon. [1] actually too much [2] actually not often enough
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 14 Feb 2023 18:59:04 +0100
parents 2905b78fc52e
children 9fa3cda7449e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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