Mercurial > hg-stable
annotate tests/test-check-code.t @ 33128:6c113a7dec52
tests: use the system hg for examining the local repository
Most test scripts use "hg" to interact with a temporary test repository.
However a few tests also want to run hg commands to interact with the local
repository containing the mercurial source code. Notably, many of the
test-check-* tests want to check local files and commit messages.
These tests were previously using the version of hg being tested to query the
source repository. However, this will fail if the source repository requires
extensions or other settings not supported by the version of mercurial being
tested. The source repository was typically initially cloned using the system
hg installation, so we should use the system hg installation to query it.
There was already a helpers-testrepo.sh script designed to help cope with
different requirements for the source repository versus the test repositories.
However, it only handled the evolve extension. This new behavior works with
any extensions that are different between the system installation and the test
installation.
author | Adam Simpkins <simpkins@fb.com> |
---|---|
date | Tue, 27 Jun 2017 17:24:31 -0700 |
parents | 73c3e226d2fc |
children | ddd65b4f3ae6 |
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 |
33128
6c113a7dec52
tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents:
32270
diff
changeset
|
10 $ syshg locate -X contrib/python-zstandard -X hgext/fsmonitor/pywatchman | |
31825 | 11 > sed 's-\\-/-g' | "$check_code" --warnings --per-file=0 - || false |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
12 Skipping i18n/polib.py it has no-che?k-code (glob) |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
13 Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob) |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
14 Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob) |
30267
b032a7b676c6
statprof: vendor statprof.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29442
diff
changeset
|
15 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
|
16 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
|
17 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
18 @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
|
19 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
20 >>> import re |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
21 >>> commands = [] |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
22 >>> 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
|
23 ... for line in fh: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
24 ... m = re.match("^@command\('([a-z]+)", line) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
25 ... if m: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30444
diff
changeset
|
26 ... 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
|
27 >>> 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
|
28 >>> 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
|
29 ... 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
|
30 ... 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
|
31 ... '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
|
32 ... break |
31731
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
33 |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
34 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
|
35 |
33128
6c113a7dec52
tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents:
32270
diff
changeset
|
36 $ syshg files 'glob:*' |
31731
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
37 .editorconfig |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
38 .hgignore |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
39 .hgsigs |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
40 .hgtags |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
41 CONTRIBUTING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
42 CONTRIBUTORS |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
43 COPYING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
44 Makefile |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
45 README |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
46 hg |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
47 hgeditor |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
48 hgweb.cgi |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31729
diff
changeset
|
49 setup.py |