| OLD | NEW |
| (Empty) |
| 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. | |
| 5 | |
| 6 """Generates the metrics collected weekly for the Browser Components project. | |
| 7 | |
| 8 See | |
| 9 http://www.chromium.org/developers/design-documents/browser-components | |
| 10 for details. | |
| 11 """ | |
| 12 | |
| 13 import os | |
| 14 import sys | |
| 15 | |
| 16 | |
| 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__), '..', 'checkdeps')) | |
| 21 | |
| 22 | |
| 23 import count_ifdefs | |
| 24 import checkdeps | |
| 25 import results | |
| 26 | |
| 27 | |
| 28 # Preprocessor pattern to find OS_XYZ defines. | |
| 29 PREPROCESSOR_PATTERN = 'OS_[A-Z]+' | |
| 30 | |
| 31 | |
| 32 class BrowserComponentsMetricsGenerator(object): | |
| 33 def __init__(self, checkout_root): | |
| 34 self.checkout_root = checkout_root | |
| 35 self.chrome_browser = os.path.join(checkout_root, 'chrome', 'browser') | |
| 36 | |
| 37 def CountIfdefs(self, skip_tests): | |
| 38 return count_ifdefs.CountIfdefs( | |
| 39 PREPROCESSOR_PATTERN, self.chrome_browser, skip_tests) | |
| 40 | |
| 41 def CountViolations(self, skip_tests): | |
| 42 deps_checker = checkdeps.DepsChecker(self.checkout_root, | |
| 43 ignore_temp_rules=True, | |
| 44 skip_tests=skip_tests) | |
| 45 deps_checker.results_formatter = results.CountViolationsFormatter() | |
| 46 deps_checker.CheckDirectory(os.path.join('chrome', 'browser')) | |
| 47 return int(deps_checker.results_formatter.GetResults()) | |
| 48 | |
| 49 | |
| 50 def main(): | |
| 51 generator = BrowserComponentsMetricsGenerator( | |
| 52 os.path.join(os.path.dirname(__file__), '..', '..')) | |
| 53 | |
| 54 print "All metrics are for chrome/browser.\n" | |
| 55 print "OS ifdefs, all: %d" % generator.CountIfdefs(False) | |
| 56 print "OS ifdefs, -tests: %d" % generator.CountIfdefs(True) | |
| 57 print ("Intended DEPS violations, all: %d" % | |
| 58 generator.CountViolations(False)) | |
| 59 print "Intended DEPS violations, -tests: %d" % generator.CountViolations(True) | |
| 60 return 0 | |
| 61 | |
| 62 | |
| 63 if __name__ == '__main__': | |
| 64 sys.exit(main()) | |
| OLD | NEW |