annotate tests/test-check-code.t @ 43831:5a9e2ae9899b

fuzz: use a more standard approach to allow local builds of fuzzers This is taken from the (improved since we started fuzzing) guide on ideal integrations. Rather than have our own wonky targets for building outside the fuzzer universe, we have a driver program we carry along and use when we're not using LibFuzzer. This will let us jettison a fair amount of goo. contrib/fuzz/standalone_fuzz_target_runner.cc is https://github.com/google/oss-fuzz/ file projects/example/my-api-repo/standalone from git revision c4579d9358a73ea5dbcc99cb985de1f2bf76dcf7, reformatted with out clang-format settings and a no-check-code comment added. It allows running a single test input through a fuzzer, rather than performing ongoing fuzzing as libfuzzer would. contrib/fuzz/FuzzedDataProvider.h is https://github.com/llvm/llvm-project/ file /compiler-rt/include/fuzzer/FuzzedDataProvider.h from git revision a44ef027ebca1598892ea9b104d6189aeb3bc2f0, reformatted with our clang-format settings and a no-check-code comment added. We can discard this if we instead want to add an hghave check for a new enough llvm that includes FuzzedDataProvder.h in the fuzzer headers. Differential Revision: https://phab.mercurial-scm.org/D7564
author Augie Fackler <augie@google.com>
date Fri, 06 Dec 2019 15:19:47 -0500
parents f0b33e5f0cf4
children 94f4f2ec7dee
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
34396
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 \
41401f502c83 tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents: 33583
diff changeset
14 > | 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: 41926
diff changeset
15 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: 41926
diff changeset
16 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: 41926
diff changeset
17 Skipping contrib/automation/hgautomation/cli.py it has no-che?k-code (glob)
42312
65b3ef162b39 automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 42024
diff changeset
18 Skipping contrib/automation/hgautomation/linux.py it has no-che?k-code (glob)
42913
92593d72e10b automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 42312
diff changeset
19 Skipping contrib/automation/hgautomation/pypi.py it has no-che?k-code (glob)
42312
65b3ef162b39 automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents: 42024
diff changeset
20 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: 42913
diff changeset
21 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: 41926
diff changeset
22 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: 41926
diff changeset
23 Skipping contrib/automation/hgautomation/winrm.py it has no-che?k-code (glob)
43831
5a9e2ae9899b fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents: 43733
diff changeset
24 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: 43733
diff changeset
25 Skipping contrib/fuzz/standalone_fuzz_target_runner.cc it has no-che?k-code (glob)
43561
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43348
diff changeset
26 Skipping contrib/packaging/hgpackaging/cli.py it has no-che?k-code (glob)
41913
c2237fe1359e packaging: split downloading code into own module
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41912
diff changeset
27 Skipping contrib/packaging/hgpackaging/downloads.py it has no-che?k-code (glob)
41916
dc7827a9ba64 packaging: move Inno Setup core logic into a module
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41913
diff changeset
28 Skipping contrib/packaging/hgpackaging/inno.py it has no-che?k-code (glob)
41920
a2e191a937a9 packaging: extract py2exe functionality to own module
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41916
diff changeset
29 Skipping contrib/packaging/hgpackaging/py2exe.py it has no-che?k-code (glob)
41912
9da97f49d4f4 packaging: establish hgpackaging package
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41858
diff changeset
30 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob)
41926
4371f543efda wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41920
diff changeset
31 Skipping contrib/packaging/hgpackaging/wix.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
32 Skipping i18n/polib.py it has no-che?k-code (glob)
30267
b032a7b676c6 statprof: vendor statprof.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29442
diff changeset
33 Skipping mercurial/statprof.py it has no-che?k-code (glob)
32001
c85f19c66e8d tests: add tests for poorly behaving HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31990
diff changeset
34 Skipping tests/badserverext.py it has no-che?k-code (glob)
30549
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
35
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
36 @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: 30444
diff changeset
37
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
38 >>> import re
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
39 >>> commands = []
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
40 >>> 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: 30444
diff changeset
41 ... for line in fh:
41561
f16c03c7a3d7 tests: use raw string in test-check-code.t
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40163
diff changeset
42 ... m = re.match(br"^@command\('([a-z]+)", line)
30549
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
43 ... if m:
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
44 ... commands.append(m.group(1))
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
45 >>> scommands = list(sorted(commands))
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
46 >>> for i, command in enumerate(scommands):
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
47 ... if command != commands[i]:
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
48 ... 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: 30444
diff changeset
49 ... '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: 30444
diff changeset
50 ... break
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
51
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
52 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: 31729
diff changeset
53
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33128
diff changeset
54 $ testrepohg files 'glob:*'
33583
b2c27d84f05c phabricator: include the suggested arc config in the repo
Alex Gaynor <agaynor@mozilla.com>
parents: 33502
diff changeset
55 .arcconfig
34798
e33381d95930 clang-format: configuration for the clang-format source formatter
Augie Fackler <raf@durin42.com>
parents: 34579
diff changeset
56 .clang-format
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
57 .editorconfig
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
58 .hgignore
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
59 .hgsigs
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
60 .hgtags
35183
bdd2e18b54c5 hgweb: add .jshintrc with some basic rules
Anton Shestakov <av6@dwimlabs.net>
parents: 34798
diff changeset
61 .jshintrc
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
62 CONTRIBUTING
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
63 CONTRIBUTORS
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
64 COPYING
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
65 Makefile
34579
1b59287a1cfa doc: rename README to README.rst
David Demelier <markand@malikania.fr>
parents: 34396
diff changeset
66 README.rst
43222
8f89899a5446 black: rename pyproject.toml to black.toml
Augie Fackler <augie@google.com>
parents: 43083
diff changeset
67 black.toml
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
68 hg
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
69 hgeditor
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
70 hgweb.cgi
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
71 setup.py
37804
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
72
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
73 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: 36456
diff changeset
74
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
75 $ testrepohg files \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
76 > mercurial/base85.py \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
77 > mercurial/bdiff.py \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
78 > mercurial/diffhelpers.py \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
79 > mercurial/mpatch.py \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
80 > mercurial/osutil.py \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
81 > mercurial/parsers.py \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
82 > mercurial/zstd.py
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
83 [1]
40163
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
84
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
85 Keep python3 tests sorted:
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
86 $ sort < contrib/python3-whitelist > $TESTTMP/py3sorted
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
87 $ cmp contrib/python3-whitelist $TESTTMP/py3sorted || echo 'Please sort passing tests!'
43733
f0b33e5f0cf4 tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43561
diff changeset
88
f0b33e5f0cf4 tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43561
diff changeset
89 Keep Windows line endings in check
f0b33e5f0cf4 tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43561
diff changeset
90
f0b33e5f0cf4 tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43561
diff changeset
91 $ hg files 'set:eol(dos)'
f0b33e5f0cf4 tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43561
diff changeset
92 contrib/win32/hg.bat
f0b33e5f0cf4 tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43561
diff changeset
93 contrib/win32/mercurial.ini