tests/test-check-code.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 23 Oct 2019 18:37:36 -0700
changeset 43561 081a77df7bc6
parent 43348 daa3b58906d5
child 43733 f0b33e5f0cf4
permissions -rw-r--r--
packaging: consolidate CLI functionality into packaging.py Consolidating functionality for invoking code in the hgpackaging package through a single CLI entry point will make things simpler when we add more complexity to that package. For example, it will allow us to run things out of a virtualenv with third party packages. This commit consolidates functionality from the Inno and WiX build.py scripts into a new packaging.py script. That script simply creates a virtualenv and runs the CLI functionality in it. The new virtualenv is populated with jinja2 because I felt it easier to incorporate requirements file processing in this commit and we will soon use jinja2 in an upcoming commit. The unified CLI functionality will also make it easier to script other packaging workflows going forward. e.g. RPM, Debian, and macOS packaging. Differential Revision: https://phab.mercurial-scm.org/D7156
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)
43561
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43348
diff changeset
    24
  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
    25
  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
    26
  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
    27
  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
    28
  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
    29
  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
    30
  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
    31
  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
    32
  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
    33
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
    34
@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
    35
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
    36
  >>> import re
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
    37
  >>> commands = []
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
    38
  >>> 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
    39
  ...     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
    40
  ...         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
    41
  ...         if m:
d955cebd8d6a tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30444
diff changeset
    42
  ...             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
    43
  >>> 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
    44
  >>> 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
    45
  ...     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
    46
  ...         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
    47
  ...               '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
    48
  ...         break
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    49
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    50
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
    51
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33128
diff changeset
    52
  $ testrepohg files 'glob:*'
33583
b2c27d84f05c phabricator: include the suggested arc config in the repo
Alex Gaynor <agaynor@mozilla.com>
parents: 33502
diff changeset
    53
  .arcconfig
34798
e33381d95930 clang-format: configuration for the clang-format source formatter
Augie Fackler <raf@durin42.com>
parents: 34579
diff changeset
    54
  .clang-format
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    55
  .editorconfig
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    56
  .hgignore
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    57
  .hgsigs
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    58
  .hgtags
35183
bdd2e18b54c5 hgweb: add .jshintrc with some basic rules
Anton Shestakov <av6@dwimlabs.net>
parents: 34798
diff changeset
    59
  .jshintrc
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    60
  CONTRIBUTING
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    61
  CONTRIBUTORS
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    62
  COPYING
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    63
  Makefile
34579
1b59287a1cfa doc: rename README to README.rst
David Demelier <markand@malikania.fr>
parents: 34396
diff changeset
    64
  README.rst
43222
8f89899a5446 black: rename pyproject.toml to black.toml
Augie Fackler <augie@google.com>
parents: 43083
diff changeset
    65
  black.toml
31731
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    66
  hg
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    67
  hgeditor
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    68
  hgweb.cgi
bdb72dd3957e test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents: 31729
diff changeset
    69
  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
    70
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
    71
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
    72
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
    73
  $ testrepohg files \
1ec874717d8a test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents: 36456
diff changeset
    74
  > 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
    75
  > 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
    76
  > 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
    77
  > 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
    78
  > 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
    79
  > 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
    80
  > 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
    81
  [1]
40163
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
    82
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
    83
Keep python3 tests sorted:
9f0ee4a60d65 tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents: 39094
diff changeset
    84
  $ 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
    85
  $ cmp contrib/python3-whitelist $TESTTMP/py3sorted || echo 'Please sort passing tests!'