Mercurial > hg
annotate tests/test-check-code.t @ 36037:8de90e006c78
run-tests: report tests that exception occurred in
We now record the test that an exception occurred in. We put this
information to use by aggregating the count of failures in each
test. For each exception, the exception report now prints the total
number of tests having that exception and the test with the least
number of exceptions exhibiting that failure. The exception list
is now sorted by (total count, tests impacted, count of failures
in least failing test).
This allows us to:
* Assess how widespread a failure is. Some exceptions occur a lot
in a few tests. Others occur over many tests.
* Easily run a test exhibiting an exception without having to find
a failure in test output.
* Find and fix low hanging fruit (e.g. exceptions that are the
only failure in a test).
Here's an example of the new output:
199 (4 tests) /home/gps/src/hg/hgext/blackbox.py:191: %b requires a bytes-like object, or an object that implements __bytes__, not 'str' (test-devel-warnings.t - 1 total)
142 (19 tests) /home/gps/src/hg/hgext/mq.py:655: list indices must be integers or slices, not bytes (test-hardlinks.t - 1 total)
140 (20 tests) /home/gps/src/hg/mercurial/patch.py:296: string argument expected, got 'bytes' (test-audit-subrepo.t - 1 total)
101 (15 tests) /home/gps/src/hg/hgext/convert/convcmd.py:60: encode() argument 1 must be str, not bytes (test-convert-clonebranches.t - 1 total)
90 (2 tests) /home/gps/src/hg/hgext/mq.py:456: can't concat str to bytes (test-mq-qqueue.t - 1 total)
87 (2 tests) /home/gps/src/hg/mercurial/branchmap.py:380: %b requires a bytes-like object, or an object that implements __bytes__, not 'FileNotFoundError' (test-branches.t - 2 total)
85 (22 tests) /home/gps/src/hg/mercurial/sshpeer.py:223: cannot convert 'UUID' object to bytes (test-bundle2-pushback.t - 1 total)
1 (1 tests) /home/gps/src/hg/mercurial/formatter.py:254: %b requires a bytes-like object, or an object that implements __bytes__, not 'str' (test-debugextensions.t - 2 total)
1 (1 tests) /home/gps/src/hg/hgext/convert/convcmd.py:420: startswith first arg must be str or a tuple of str, not bytes (test-convert-authormap.t - 2 total)
1 (1 tests) /home/gps/src/hg/mercurial/revlog.py:797: '>=' not supported between instances of 'NoneType' and 'int' (test-unionrepo.t - 1 total)
1 (1 tests) /home/gps/src/hg/hgext/show.py:129: %b requires a bytes-like object, or an object that implements __bytes__, not 'str' (test-show.t - 1 total)
Differential Revision: https://phab.mercurial-scm.org/D2138
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 11 Feb 2018 12:42:10 -0800 |
parents | 414114a7c18f |
children | 23d12524a202 |
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 \ |
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 |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
15 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
|
16 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
|
17 Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob) |
30253
b032a7b676c6
statprof: vendor statprof.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29442
diff
changeset
|
18 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
|
19 Skipping tests/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
|
20 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
21 @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
|
22 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
23 >>> import re |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
24 >>> commands = [] |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
25 >>> 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
|
26 ... for line in fh: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
27 ... 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:
30435
diff
changeset
|
28 ... if m: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
29 ... 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
|
30 >>> 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
|
31 >>> 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
|
32 ... 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
|
33 ... 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
|
34 ... '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
|
35 ... break |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
36 |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
37 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
|
38 |
33204
ddd65b4f3ae6
tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents:
33116
diff
changeset
|
39 $ testrepohg files 'glob:*' |
33583
b2c27d84f05c
phabricator: include the suggested arc config in the repo
Alex Gaynor <agaynor@mozilla.com>
parents:
33502
diff
changeset
|
40 .arcconfig |
34798
e33381d95930
clang-format: configuration for the clang-format source formatter
Augie Fackler <raf@durin42.com>
parents:
34579
diff
changeset
|
41 .clang-format |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
42 .editorconfig |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
43 .hgignore |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
44 .hgsigs |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
45 .hgtags |
35162
bdd2e18b54c5
hgweb: add .jshintrc with some basic rules
Anton Shestakov <av6@dwimlabs.net>
parents:
34798
diff
changeset
|
46 .jshintrc |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
47 CONTRIBUTING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
48 CONTRIBUTORS |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
49 COPYING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
50 Makefile |
34579
1b59287a1cfa
doc: rename README to README.rst
David Demelier <markand@malikania.fr>
parents:
34395
diff
changeset
|
51 README.rst |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
52 hg |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
53 hgeditor |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
54 hgweb.cgi |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
55 setup.py |