Mercurial > hg
annotate tests/test-check-module-imports.t @ 41188:006c9ce486fa
rust-cpython: bindings for MissingAncestors
The exposition is rather straightforward, except for the
remove_ancestors_from() method, which forces us to an inefficient
conversion between Python sets and Rust HashSets.
Two alternatives are proposed in comments:
- changing the inner API to "emit" the revision numbers to discard
this would be a substantial change, and it would be better only in the
cases where there are more to retain than to discard
- mutating the Python set directly: this would force us to define an abstract
`RevisionSet` trait, and implement it both for plain `HashSet` and for
a struct enclosing a Python set with the GIL marker `Python<'p>`, also a non
trivial effort.
The main (and seemingly only) caller of this method being
`mercurial.setdiscovery`, which is currently undergoing serious refactoring,
it's not clear whether these improvements would be worth the effort right now,
so we're leaving it as-is.
Also, in `get_bases()` (will also be used by `setdiscovery`), we'd prefer
to build a Python set directly, but we resort to returning a tuple, waiting
to hear back from our PR onto rust-cpython about that
Differential Revision: https://phab.mercurial-scm.org/D5550
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Fri, 30 Nov 2018 20:05:34 +0100 |
parents | abd7b75e80bc |
children | d7dc4ac1ff84 |
rev | line source |
---|---|
23894
f388ceae2250
test-module-imports: use test-repo requirement
Matt Mackall <mpm@selenic.com>
parents:
22947
diff
changeset
|
1 #require test-repo |
f388ceae2250
test-module-imports: use test-repo requirement
Matt Mackall <mpm@selenic.com>
parents:
22947
diff
changeset
|
2 |
29219
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
29212
diff
changeset
|
3 $ . "$TESTDIR/helpers-testrepo.sh" |
20039
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
4 $ import_checker="$TESTDIR"/../contrib/import-checker.py |
23894
f388ceae2250
test-module-imports: use test-repo requirement
Matt Mackall <mpm@selenic.com>
parents:
22947
diff
changeset
|
5 |
20039
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
6 $ cd "$TESTDIR"/.. |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
7 |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
8 There are a handful of cases here that require renaming a module so it |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
9 doesn't overlap with a stdlib module name. There are also some cycles |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
10 here that we should still endeavor to fix, and some cycles will be |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
11 hidden by deduplication algorithm in the cycle detector, so fixing |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
12 these may expose other cycles. |
05626e87489c
test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com>
parents:
diff
changeset
|
13 |
28844
99a2bdad0fda
tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents:
28330
diff
changeset
|
14 Known-bad files are excluded by -X as some of them would produce unstable |
99a2bdad0fda
tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents:
28330
diff
changeset
|
15 outputs, which should be fixed later. |
99a2bdad0fda
tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents:
28330
diff
changeset
|
16 |
33204
ddd65b4f3ae6
tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents:
33116
diff
changeset
|
17 $ testrepohg locate 'set:**.py or grep(r"^#!.*?python")' \ |
28923
531dea16f4f7
tests: run import-checker with tests .t files
timeless <timeless@mozdev.org>
parents:
28844
diff
changeset
|
18 > 'tests/**.t' \ |
33914
a0aeb096bb12
tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com>
parents:
33439
diff
changeset
|
19 > -X hgweb.cgi \ |
a0aeb096bb12
tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com>
parents:
33439
diff
changeset
|
20 > -X setup.py \ |
29212
8005e0e0eb33
tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents:
29208
diff
changeset
|
21 > -X contrib/debugshell.py \ |
33914
a0aeb096bb12
tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com>
parents:
33439
diff
changeset
|
22 > -X contrib/hgweb.fcgi \ |
38458
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37810
diff
changeset
|
23 > -X contrib/packaging/hg-docker \ |
30435
b86a448a2965
zstd: vendor python-zstandard 0.5.0
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29305
diff
changeset
|
24 > -X contrib/python-zstandard/ \ |
29212
8005e0e0eb33
tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents:
29208
diff
changeset
|
25 > -X contrib/win32/hgwebdir_wsgi.py \ |
40958
abd7b75e80bc
contrib: provide a small script that draw performance plot
Paul Morelle <paul.morelle@octobus.net>
parents:
40207
diff
changeset
|
26 > -X contrib/perf-utils/perf-revlog-write-plot.py \ |
29212
8005e0e0eb33
tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents:
29208
diff
changeset
|
27 > -X doc/gendoc.py \ |
8005e0e0eb33
tests: enable import checker for all **.py files
Yuya Nishihara <yuya@tcha.org>
parents:
29208
diff
changeset
|
28 > -X doc/hgmanpage.py \ |
29234
393aef802535
tests: enable import checker for all python files (including no .py files)
Yuya Nishihara <yuya@tcha.org>
parents:
29219
diff
changeset
|
29 > -X i18n/posplit \ |
34395
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33917
diff
changeset
|
30 > -X mercurial/thirdparty \ |
28844
99a2bdad0fda
tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org>
parents:
28330
diff
changeset
|
31 > -X tests/hypothesishelpers.py \ |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
34395
diff
changeset
|
32 > -X tests/test-check-interfaces.py \ |
33917
9ce139c9222f
tests: blacklist test-demandimport from test-check-module-imports
Augie Fackler <raf@durin42.com>
parents:
33916
diff
changeset
|
33 > -X tests/test-demandimport.py \ |
33916
d669b1ad215f
tests: sort excluded test files in test-check-module-imports
Augie Fackler <raf@durin42.com>
parents:
33914
diff
changeset
|
34 > -X tests/test-imports-checker.t \ |
d669b1ad215f
tests: sort excluded test files in test-check-module-imports
Augie Fackler <raf@durin42.com>
parents:
33914
diff
changeset
|
35 > -X tests/test-verify-repo-operations.py \ |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38458
diff
changeset
|
36 > | sed 's-\\-/-g' | "$PYTHON" "$import_checker" - |