Mercurial > hg
annotate tests/test-check-code.t @ 30706:2e4862646f02
repair: speed up stripping of many roots
repair.strip() expects a set of root revisions to strip. It then
builds the full set of descedants by walking the descandants of
each. It is rare that more than a few roots get passed in, but if that
happens, it will wastefully walk the changelog for each root. So let's
just walk it once.
I noticed this because the narrowhg extension was passing not only
roots, but all the commits to strip. When there were tens of thousands
of commits to strip, this resulted in quadratic behavior with that
extension.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 04 Jan 2017 10:07:12 -0800 |
parents | 13d94304c8da |
children | 8a17c541177f |
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 |
30633
fd244e047ec0
tests: exclude bundled pywatchman from check-code test
David Soria Parra <davidsp@fb.com>
parents:
30541
diff
changeset
|
10 $ hg locate -X contrib/python-zstandard -X hgext/fsmonitor/pywatchman | |
fd244e047ec0
tests: exclude bundled pywatchman from check-code test
David Soria Parra <davidsp@fb.com>
parents:
30541
diff
changeset
|
11 > sed 's-\\-/-g' | xargs "$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) |
30697 | 13 mercurial/demandimport.py:312: |
30665
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
14 > if os.environ.get('HGDEMANDIMPORT') != 'disable': |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
15 use encoding.environ instead (py3) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
16 mercurial/encoding.py:54: |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
17 > environ = os.environ |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
18 use encoding.environ instead (py3) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
19 mercurial/encoding.py:56: |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
20 > environ = os.environb |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
21 use encoding.environ instead (py3) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
22 mercurial/encoding.py:61: |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
23 > for k, v in os.environ.items()) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
24 use encoding.environ instead (py3) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
25 mercurial/encoding.py:203: |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
26 > for k, v in os.environ.items()) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
27 use encoding.environ instead (py3) |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
28 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
|
29 Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob) |
30665
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
30 mercurial/policy.py:45: |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
31 > policy = os.environ.get('HGMODULEPOLICY', policy) |
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
32 use encoding.environ instead (py3) |
30253
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) |
30665
01721d382c16
py3: add warnings in check-code related to py3
Pulkit Goyal <7895pulkit@gmail.com>
parents:
30633
diff
changeset
|
34 [1] |
30540
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
35 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
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:
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 >>> import re |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
39 >>> commands = [] |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
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:
30435
diff
changeset
|
41 ... 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
|
42 ... 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
|
43 ... if m: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
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:
30435
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:
30435
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:
30435
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:
30435
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:
30435
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:
30435
diff
changeset
|
50 ... break |