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 """Top-level presubmit script for cc. | 5 """Top-level presubmit script for cc. |
6 | 6 |
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for | 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for |
8 details on the presubmit API built into gcl. | 8 details on the presubmit API built into gcl. |
9 """ | 9 """ |
10 | 10 |
11 import re | 11 import re |
12 | 12 |
13 CC_SOURCE_FILES=(r'^cc/.*\.(cc|h)$',) | 13 CC_SOURCE_FILES=(r'^cc/.*\.(cc|h)$',) |
14 CC_PERF_TEST =(r'^.*_perftest.*\.(cc|h)$',) | 14 CC_PERF_TEST =(r'^.*_perftest.*\.(cc|h)$',) |
15 | 15 |
16 def CheckChangeLintsClean(input_api, output_api): | 16 def CheckChangeLintsClean(input_api, output_api): |
17 import cpplint | 17 input_api.cpplint._cpplint_state.ResetErrorCounts() # reset global state |
18 cpplint._cpplint_state.ResetErrorCounts() # reset global state | |
19 source_filter = lambda x: input_api.FilterSourceFile( | 18 source_filter = lambda x: input_api.FilterSourceFile( |
20 x, white_list=CC_SOURCE_FILES, black_list=None) | 19 x, white_list=CC_SOURCE_FILES, black_list=None) |
21 files = [f.AbsoluteLocalPath() for f in | 20 files = [f.AbsoluteLocalPath() for f in |
22 input_api.AffectedSourceFiles(source_filter)] | 21 input_api.AffectedSourceFiles(source_filter)] |
23 level = 1 # strict, but just warn | 22 level = 1 # strict, but just warn |
24 | 23 |
25 # Replace <hash_map> and <hash_set> as headers that need to be included | 24 for file_name in files: |
26 # with "base/hash_tables.h" instead. | 25 input_api.cpplint.ProcessFile(file_name, level) |
27 cpplint._re_pattern_templates = [ | |
28 (a,b,'base/hash_tables.h') if (header == '<hash_map>' or | |
29 header == '<hash_set>') | |
30 else (a,b,header) | |
31 for (a,b,header) in cpplint._re_pattern_templates] | |
32 | 26 |
33 for file_name in files: | 27 if not input_api.cpplint._cpplint_state.error_count: |
34 cpplint.ProcessFile(file_name, level) | |
35 | |
36 if not cpplint._cpplint_state.error_count: | |
37 return [] | 28 return [] |
38 | 29 |
39 return [output_api.PresubmitPromptWarning( | 30 return [output_api.PresubmitPromptWarning( |
40 'Changelist failed cpplint.py check.')] | 31 'Changelist failed cpplint.py check.')] |
41 | 32 |
42 def CheckAsserts(input_api, output_api, white_list=CC_SOURCE_FILES, black_list=N
one): | 33 def CheckAsserts(input_api, output_api, white_list=CC_SOURCE_FILES, black_list=N
one): |
43 black_list = tuple(black_list or input_api.DEFAULT_BLACK_LIST) | 34 black_list = tuple(black_list or input_api.DEFAULT_BLACK_LIST) |
44 source_file_filter = lambda x: input_api.FilterSourceFile(x, white_list, black
_list) | 35 source_file_filter = lambda x: input_api.FilterSourceFile(x, white_list, black
_list) |
45 | 36 |
46 assert_files = [] | 37 assert_files = [] |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 results = [] | 85 results = [] |
95 results += CheckAsserts(input_api, output_api) | 86 results += CheckAsserts(input_api, output_api) |
96 results += CheckSpamLogging(input_api, output_api, black_list=CC_PERF_TEST) | 87 results += CheckSpamLogging(input_api, output_api, black_list=CC_PERF_TEST) |
97 results += CheckChangeLintsClean(input_api, output_api) | 88 results += CheckChangeLintsClean(input_api, output_api) |
98 return results | 89 return results |
99 | 90 |
100 def GetPreferredTrySlaves(project, change): | 91 def GetPreferredTrySlaves(project, change): |
101 return [ | 92 return [ |
102 'linux_layout_rel', | 93 'linux_layout_rel', |
103 ] | 94 ] |
OLD | NEW |