Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(803)

Unified Diff: checkdeps/checkdeps.py

Issue 2653023004: Dependancy check for .proto files is added. (Closed)
Patch Set: Proto depscheck ignores partial paths. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | checkdeps/checkdeps_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: checkdeps/checkdeps.py
diff --git a/checkdeps/checkdeps.py b/checkdeps/checkdeps.py
index 63b97fa060511d1e8aa793d1b6e829bf6e1a4679..d3d977c01a5299bca1916b6b736168177f835c59 100755
--- a/checkdeps/checkdeps.py
+++ b/checkdeps/checkdeps.py
@@ -6,7 +6,7 @@
"""Makes sure that files include headers from allowed directories.
Checks DEPS files in the source tree for rules, and applies those rules to
-"#include" and "import" directives in the .cpp and .java source files.
+"#include" and "import" directives in the .cpp, .java, and .proto source files.
Any source file including something not permitted by the DEPS files will fail.
See builddeps.py for a detailed description of the DEPS format.
@@ -17,6 +17,7 @@ import optparse
import re
import sys
+import proto_checker
import cpp_checker
import java_checker
import results
@@ -54,7 +55,8 @@ class DepsChecker(DepsBuilder):
ignore_temp_rules: Ignore rules that start with Rule.TEMP_ALLOW ("!").
"""
DepsBuilder.__init__(
- self, base_directory, extra_repos, verbose, being_tested, ignore_temp_rules)
+ self, base_directory, extra_repos, verbose, being_tested,
+ ignore_temp_rules)
self._skip_tests = skip_tests
self._resolve_dotdot = resolve_dotdot
@@ -80,9 +82,11 @@ class DepsChecker(DepsBuilder):
java = java_checker.JavaChecker(self.base_directory, self.verbose)
cpp = cpp_checker.CppChecker(
self.verbose, self._resolve_dotdot, self.base_directory)
+ proto = proto_checker.ProtoChecker(
+ self.verbose, self._resolve_dotdot, self.base_directory)
checkers = dict(
(extension, checker)
- for checker in [java, cpp] for extension in checker.EXTENSIONS)
+ for checker in [java, cpp, proto] for extension in checker.EXTENSIONS)
for rules, file_paths in self.GetAllRulesAndFiles(start_dir):
for full_name in file_paths:
@@ -102,7 +106,7 @@ class DepsChecker(DepsBuilder):
Args:
added_lines: ((file_path, (changed_line, changed_line, ...), ...)
- checker: CppChecker/JavaChecker checker instance
+ checker: CppChecker/JavaChecker/ProtoChecker checker instance
Return:
A list of tuples, (bad_file_path, rule_type, rule_description)
@@ -160,6 +164,22 @@ class DepsChecker(DepsBuilder):
added_imports,
java_checker.JavaChecker(self.base_directory, self.verbose))
+ def CheckAddedProtoImports(self, added_imports):
+ """This is used from PRESUBMIT.py to check new #import statements added in
+ the change being presubmit checked.
+
+ Args:
+ added_imports : ((file_path, (import_line, import_line, ...), ...)
+
+ Return:
+ A list of tuples, (bad_file_path, rule_type, rule_description)
+ where rule_type is one of Rule.DISALLOW or Rule.TEMP_ALLOW and
+ rule_description is human-readable. Empty if no problems.
+ """
+ return self.CheckIncludesAndImports(
+ added_imports, proto_checker.ProtoChecker(
+ verbose=self.verbose, root_dir=self.base_directory))
+
def PrintUsage():
print """Usage: python checkdeps.py [--root <root>] [tocheck]
« no previous file with comments | « no previous file | checkdeps/checkdeps_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698