##// END OF EJS Templates
debugcommands: introduce new debugrequirements command...
debugcommands: introduce new debugrequirements command This for now just prints out the list of current requirements. In future this will be helpful in reading requirements from couple of sources, and checking which requirement comes from where. Differential Revision: https://phab.mercurial-scm.org/D8632

File last commit:

r44089:47ef023d default
r45667:4a28f5e8 default
Show More
hghave
78 lines | 1.8 KiB | text/plain | TextLexer
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 #!/usr/bin/env python
"""Test the running system for features availability. Exit with zero
Patrick Mezard
hghave: feature absence can be checked by prefixing with 'no-'
r5084 if all features are there, non-zero otherwise. If a feature name is
prefixed with "no-", the absence of feature is tested.
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 """
Gregory Szorc
hghave: use print function...
r28283
Pulkit Goyal
py3: make tests/hghave use absolute_import
r29161 from __future__ import absolute_import, print_function
Gregory Szorc
hghave: use print function...
r28283
Pulkit Goyal
py3: make tests/hghave use absolute_import
r29161 import hghave
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 import optparse
Pulkit Goyal
py3: make tests/hghave use absolute_import
r29161 import os
import sys
Martin Geisler
test-gendoc: test documentation generation
r9446
Adrian Buehlmann
tests/hghave: extract hghave.py...
r16966 checks = hghave.checks
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881
Gregory Szorc
black: blacken scripts...
r44089
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 def list_features():
timeless
hghave: switch from iteritems to items...
r29141 for name, feature in sorted(checks.items()):
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 desc = feature[1]
Gregory Szorc
hghave: use print function...
r28283 print(name + ':', desc)
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881
Gregory Szorc
black: blacken scripts...
r44089
Nicolas Dumazet
hghave: checking that all targets are Exception-free
r8059 def test_features():
failed = 0
timeless
hghave: switch from iteritems to items...
r29141 for name, feature in checks.items():
Nicolas Dumazet
hghave: checking that all targets are Exception-free
r8059 check, _ = feature
try:
check()
FUJIWARA Katsunori
misc: use modern exception syntax...
r28047 except Exception as e:
Gregory Szorc
hghave: use print function...
r28283 print("feature %s failed: %s" % (name, e))
Nicolas Dumazet
hghave: checking that all targets are Exception-free
r8059 failed += 1
return failed
Gregory Szorc
black: blacken scripts...
r44089
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 parser = optparse.OptionParser("%prog [options] [features]")
Gregory Szorc
black: blacken scripts...
r44089 parser.add_option(
"--test-features", action="store_true", help="test available features"
)
parser.add_option(
"--list-features", action="store_true", help="list available features"
)
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881
Gregory Szorc
hghave: remove quiet option...
r26068 def _loadaddon():
FUJIWARA Katsunori
hghave: allow adding customized features at runtime...
r25732 if 'TESTDIR' in os.environ:
# loading from '.' isn't needed, because `hghave` should be
# running at TESTTMP in this case
path = os.environ['TESTDIR']
else:
path = '.'
if not os.path.exists(os.path.join(path, 'hghaveaddon.py')):
return
sys.path.insert(0, path)
try:
import hghaveaddon
Gregory Szorc
black: blacken scripts...
r44089
Yuya Nishihara
hghave: silence future pyflakes warning of unused import
r29231 assert hghaveaddon # silence pyflakes
FUJIWARA Katsunori
misc: use modern exception syntax...
r28047 except BaseException as inst:
Gregory Szorc
black: blacken scripts...
r44089 sys.stderr.write(
'failed to import hghaveaddon.py from %r: %s\n' % (path, inst)
)
FUJIWARA Katsunori
hghave: allow adding customized features at runtime...
r25732 sys.exit(2)
sys.path.pop(0)
Gregory Szorc
black: blacken scripts...
r44089
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 if __name__ == '__main__':
options, args = parser.parse_args()
Gregory Szorc
hghave: remove quiet option...
r26068 _loadaddon()
Patrick Mezard
Add hghave utility and run-tests.py support....
r4881 if options.list_features:
list_features()
sys.exit(0)
Thomas Arendsen Hein
Remove trailing spaces
r5081
Nicolas Dumazet
hghave: checking that all targets are Exception-free
r8059 if options.test_features:
sys.exit(test_features())
Gregory Szorc
hghave: remove quiet option...
r26068 hghave.require(args)