Index: cc/PRESUBMIT.py |
diff --git a/cc/PRESUBMIT.py b/cc/PRESUBMIT.py |
index 060890112f93e9b8b250dbfb5ef3005104b15501..2f2c0f5e28132f3b5131ad61ae467d899817242f 100644 |
--- a/cc/PRESUBMIT.py |
+++ b/cc/PRESUBMIT.py |
@@ -8,6 +8,41 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for |
details on the presubmit API built into gcl. |
""" |
+import re |
+ |
+CC_SOURCE_FILES=(r'^cc/.*\.(cc|h)$',) |
+ |
+def CheckAsserts(input_api, output_api, white_list=CC_SOURCE_FILES, black_list=None): |
+ black_list = tuple(black_list or input_api.DEFAULT_BLACK_LIST) |
+ source_file_filter = lambda x: input_api.FilterSourceFile(x, white_list, black_list) |
+ |
+ assert_files = [] |
+ notreached_files = [] |
+ |
+ for f in input_api.AffectedSourceFiles(source_file_filter): |
+ contents = input_api.ReadFile(f, 'rb') |
+ # WebKit ASSERT() is not allowed. |
+ if re.search(r"ASSERT\(", contents): |
+ assert_files.append(f.LocalPath()) |
+ # WebKit ASSERT_NOT_REACHED() is not allowed. |
+ if re.search(r"ASSERT_NOT_REACHED\(", contents): |
+ notreached_files.append(f.LocalPath()) |
+ |
+ if assert_files: |
+ return [output_api.PresubmitError( |
+ 'These files use ASSERT instead of using DCHECK:', |
+ items=assert_files)] |
+ if notreached_files: |
+ return [output_api.PresubmitError( |
+ 'These files use ASSERT_NOT_REACHED instead of using NOTREACHED:', |
+ items=notreached_files)] |
+ return [] |
+ |
+def CheckChangeOnUpload(input_api, output_api): |
+ results = [] |
+ results += CheckAsserts(input_api, output_api) |
+ return results |
+ |
def GetPreferredTrySlaves(project, change): |
return [ |
'linux_layout_rel', |