| OLD | NEW | 
|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be | 
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. | 
| 4 | 4 | 
| 5 """Generic presubmit checks that can be reused by other presubmit checks.""" | 5 """Generic presubmit checks that can be reused by other presubmit checks.""" | 
| 6 | 6 | 
| 7 import os as _os | 7 import os as _os | 
| 8 _HERE = _os.path.dirname(_os.path.abspath(__file__)) | 8 _HERE = _os.path.dirname(_os.path.abspath(__file__)) | 
| 9 | 9 | 
| 10 # Justifications for each filter: | 10 # Justifications for each filter: | 
| (...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 964       res_type = output_api.PresubmitPromptWarning | 964       res_type = output_api.PresubmitPromptWarning | 
| 965     else: | 965     else: | 
| 966       res_type = output_api.PresubmitNotifyResult | 966       res_type = output_api.PresubmitNotifyResult | 
| 967     return [ res_type('|const NSClass*| is wrong, see ' + | 967     return [ res_type('|const NSClass*| is wrong, see ' + | 
| 968                       'http://dev.chromium.org/developers/clang-mac', | 968                       'http://dev.chromium.org/developers/clang-mac', | 
| 969                       files) ] | 969                       files) ] | 
| 970   return [] | 970   return [] | 
| 971 | 971 | 
| 972 | 972 | 
| 973 def CheckSingletonInHeaders(input_api, output_api, source_file_filter=None): | 973 def CheckSingletonInHeaders(input_api, output_api, source_file_filter=None): | 
| 974   """Checks to make sure no header files have |Singleton<|.""" | 974   """Deprecated, must be removed.""" | 
| 975   pattern = input_api.re.compile(r'(?<!class\s)Singleton\s*<') | 975   return [ | 
| 976   files = [] | 976     output_api.PresubmitNotifyResult( | 
| 977   for f in input_api.AffectedSourceFiles(source_file_filter): | 977         'CheckSingletonInHeaders is deprecated, please remove it.') | 
| 978     if (f.LocalPath().endswith('.h') or f.LocalPath().endswith('.hxx') or | 978   ] | 
| 979         f.LocalPath().endswith('.hpp') or f.LocalPath().endswith('.inl')): |  | 
| 980       contents = input_api.ReadFile(f) |  | 
| 981       for line in contents.splitlines(False): |  | 
| 982         if (not input_api.re.match(r'//', line) and # Strip C++ comment. |  | 
| 983             pattern.search(line)): |  | 
| 984           files.append(f) |  | 
| 985           break |  | 
| 986 |  | 
| 987   if files: |  | 
| 988     return [ output_api.PresubmitError( |  | 
| 989         'Found Singleton<T> in the following header files.\n' + |  | 
| 990         'Please move them to an appropriate source file so that the ' + |  | 
| 991         'template gets instantiated in a single compilation unit.', |  | 
| 992         files) ] |  | 
| 993   return [] |  | 
| 994 | 979 | 
| 995 | 980 | 
| 996 def PanProjectChecks(input_api, output_api, | 981 def PanProjectChecks(input_api, output_api, | 
| 997                      excluded_paths=None, text_files=None, | 982                      excluded_paths=None, text_files=None, | 
| 998                      license_header=None, project_name=None, | 983                      license_header=None, project_name=None, | 
| 999                      owners_check=True, maxlen=80): | 984                      owners_check=True, maxlen=80): | 
| 1000   """Checks that ALL chromium orbit projects should use. | 985   """Checks that ALL chromium orbit projects should use. | 
| 1001 | 986 | 
| 1002   These are checks to be run on all Chromium orbit project, including: | 987   These are checks to be run on all Chromium orbit project, including: | 
| 1003     Chromium | 988     Chromium | 
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1071       input_api, output_api, maxlen, source_file_filter=sources)) | 1056       input_api, output_api, maxlen, source_file_filter=sources)) | 
| 1072   snapshot( "checking tabs") | 1057   snapshot( "checking tabs") | 
| 1073   results.extend(input_api.canned_checks.CheckChangeHasNoTabs( | 1058   results.extend(input_api.canned_checks.CheckChangeHasNoTabs( | 
| 1074       input_api, output_api, source_file_filter=sources)) | 1059       input_api, output_api, source_file_filter=sources)) | 
| 1075   snapshot( "checking stray whitespace") | 1060   snapshot( "checking stray whitespace") | 
| 1076   results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace( | 1061   results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace( | 
| 1077       input_api, output_api, source_file_filter=sources)) | 1062       input_api, output_api, source_file_filter=sources)) | 
| 1078   snapshot("checking nsobjects") | 1063   snapshot("checking nsobjects") | 
| 1079   results.extend(_CheckConstNSObject( | 1064   results.extend(_CheckConstNSObject( | 
| 1080       input_api, output_api, source_file_filter=sources)) | 1065       input_api, output_api, source_file_filter=sources)) | 
| 1081   snapshot("checking singletons") |  | 
| 1082   results.extend(CheckSingletonInHeaders( |  | 
| 1083       input_api, output_api, source_file_filter=sources)) |  | 
| 1084 | 1066 | 
| 1085   # The following checks are only done on commit, since the commit bot will | 1067   # The following checks are only done on commit, since the commit bot will | 
| 1086   # auto-fix most of these. | 1068   # auto-fix most of these. | 
| 1087   if input_api.is_committing: | 1069   if input_api.is_committing: | 
| 1088     snapshot("checking eol style") | 1070     snapshot("checking eol style") | 
| 1089     results.extend(input_api.canned_checks.CheckChangeSvnEolStyle( | 1071     results.extend(input_api.canned_checks.CheckChangeSvnEolStyle( | 
| 1090         input_api, output_api, source_file_filter=text_files)) | 1072         input_api, output_api, source_file_filter=text_files)) | 
| 1091     snapshot("checking svn mime types") | 1073     snapshot("checking svn mime types") | 
| 1092     results.extend(input_api.canned_checks.CheckSvnForCommonMimeTypes( | 1074     results.extend(input_api.canned_checks.CheckSvnForCommonMimeTypes( | 
| 1093         input_api, output_api)) | 1075         input_api, output_api)) | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1134   for f in affected_files: | 1116   for f in affected_files: | 
| 1135     cmd = ['gn', 'format', '--dry-run', f.AbsoluteLocalPath()] | 1117     cmd = ['gn', 'format', '--dry-run', f.AbsoluteLocalPath()] | 
| 1136     rc = gn.main(cmd) | 1118     rc = gn.main(cmd) | 
| 1137     if rc == 2: | 1119     if rc == 2: | 
| 1138       warnings.append(output_api.PresubmitPromptWarning( | 1120       warnings.append(output_api.PresubmitPromptWarning( | 
| 1139           '%s requires formatting. Please run `gn format --in-place %s`.' % ( | 1121           '%s requires formatting. Please run `gn format --in-place %s`.' % ( | 
| 1140               f.AbsoluteLocalPath(), f.LocalPath()))) | 1122               f.AbsoluteLocalPath(), f.LocalPath()))) | 
| 1141   # It's just a warning, so ignore other types of failures assuming they'll be | 1123   # It's just a warning, so ignore other types of failures assuming they'll be | 
| 1142   # caught elsewhere. | 1124   # caught elsewhere. | 
| 1143   return warnings | 1125   return warnings | 
| OLD | NEW | 
|---|