annotate tests/hghave @ 841:edcdb7620f4d

git_handler.get_files_changed: return detected renames We currently return an empty dictionary -- we'll fill it in upcoming patches.
author Siddharth Agarwal <sid0@fb.com>
date Tue, 02 Dec 2014 15:04:50 -0800
parents 8c6dc6a6f5d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
565
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
1 #!/usr/bin/env python
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
2 """Test the running system for features availability. Exit with zero
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
3 if all features are there, non-zero otherwise. If a feature name is
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
4 prefixed with "no-", the absence of feature is tested.
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
5 """
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
6 import optparse
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
7 import sys
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
8 import hghave
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
9
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
10 checks = hghave.checks
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
11
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
12 def list_features():
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
13 for name, feature in checks.iteritems():
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
14 desc = feature[1]
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
15 print name + ':', desc
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
16
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
17 def test_features():
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
18 failed = 0
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
19 for name, feature in checks.iteritems():
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
20 check, _ = feature
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
21 try:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
22 check()
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
23 except Exception, e:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
24 print "feature %s failed: %s" % (name, e)
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
25 failed += 1
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
26 return failed
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
27
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
28 parser = optparse.OptionParser("%prog [options] [features]")
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
29 parser.add_option("--test-features", action="store_true",
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
30 help="test available features")
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
31 parser.add_option("--list-features", action="store_true",
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
32 help="list available features")
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
33 parser.add_option("-q", "--quiet", action="store_true",
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
34 help="check features silently")
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
35
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
36 if __name__ == '__main__':
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
37 options, args = parser.parse_args()
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
38 if options.list_features:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
39 list_features()
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
40 sys.exit(0)
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
41
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
42 if options.test_features:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
43 sys.exit(test_features())
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
44
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
45 quiet = options.quiet
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
46
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
47 failures = 0
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
48
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
49 def error(msg):
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
50 global failures
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
51 if not quiet:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
52 sys.stderr.write(msg + '\n')
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
53 failures += 1
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
54
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
55 for feature in args:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
56 negate = feature.startswith('no-')
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
57 if negate:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
58 feature = feature[3:]
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
59
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
60 if feature not in checks:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
61 error('skipped: unknown feature: ' + feature)
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
62 continue
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
63
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
64 check, desc = checks[feature]
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
65 try:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
66 available = check()
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
67 except Exception, e:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
68 error('hghave check failed: ' + feature)
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
69 continue
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
70
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
71 if not negate and not available:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
72 error('skipped: missing feature: ' + desc)
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
73 elif negate and available:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
74 error('skipped: system supports %s' % desc)
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
75
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
76 if failures != 0:
8c6dc6a6f5d8 tests: pull in hghave
David M. Carr <david@carrclan.us>
parents:
diff changeset
77 sys.exit(1)