Support for unpacked ARM packed relocations.
[chromium-blink-merge.git] / components / tools / metrics / browser_components_metrics.py
blobc1f5b4b05d0f3bce2b260d772148fdbb25cb5805
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """Generates the metrics collected weekly for the Browser Components project.
8 See
9 http://www.chromium.org/developers/design-documents/browser-components
10 for details.
11 """
13 import os
14 import sys
17 # This is done so that we can import checkdeps. If not invoked as
18 # main, our user must ensure it is in PYTHONPATH.
19 if __name__ == '__main__':
20 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..',
21 'buildtools', 'checkdeps'))
24 import count_ifdefs
25 import checkdeps
26 import results
29 # Preprocessor pattern to find OS_XYZ defines.
30 PREPROCESSOR_PATTERN = 'OS_[A-Z]+'
33 class BrowserComponentsMetricsGenerator(object):
34 def __init__(self, checkout_root):
35 self.checkout_root = checkout_root
36 self.chrome_browser = os.path.join(checkout_root, 'chrome', 'browser')
38 def CountIfdefs(self, skip_tests):
39 return count_ifdefs.CountIfdefs(
40 PREPROCESSOR_PATTERN, self.chrome_browser, skip_tests)
42 def CountViolations(self, skip_tests):
43 deps_checker = checkdeps.DepsChecker(self.checkout_root,
44 ignore_temp_rules=True,
45 skip_tests=skip_tests)
46 deps_checker.results_formatter = results.CountViolationsFormatter()
47 deps_checker.CheckDirectory(os.path.join('chrome', 'browser'))
48 return int(deps_checker.results_formatter.GetResults())
51 def main():
52 generator = BrowserComponentsMetricsGenerator(
53 os.path.join(os.path.dirname(__file__), '..', '..', '..'))
55 print "All metrics are for chrome/browser.\n"
56 print "OS ifdefs, all: %d" % generator.CountIfdefs(False)
57 print "OS ifdefs, -tests: %d" % generator.CountIfdefs(True)
58 print ("Intended DEPS violations, all: %d" %
59 generator.CountViolations(False))
60 print "Intended DEPS violations, -tests: %d" % generator.CountViolations(True)
61 return 0
64 if __name__ == '__main__':
65 sys.exit(main())