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

Side by Side Diff: PRESUBMIT.py

Issue 58803002: Sync PRESUBMIT.py with what is run on CQ. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix indentation, add google_apis_unittests, add mac_rel to swarm. Created 7 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 Chromium. 5 """Top-level presubmit script for Chromium.
6 6
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8 for more details about the presubmit API built into gcl. 8 for more details about the presubmit API built into gcl.
9 """ 9 """
10 10
(...skipping 985 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 'Possibly invalid OS macro[s] found. Please fix your code\n' 996 'Possibly invalid OS macro[s] found. Please fix your code\n'
997 'or add your macro to src/PRESUBMIT.py.', bad_macros)] 997 'or add your macro to src/PRESUBMIT.py.', bad_macros)]
998 998
999 999
1000 def CheckChangeOnUpload(input_api, output_api): 1000 def CheckChangeOnUpload(input_api, output_api):
1001 results = [] 1001 results = []
1002 results.extend(_CommonChecks(input_api, output_api)) 1002 results.extend(_CommonChecks(input_api, output_api))
1003 return results 1003 return results
1004 1004
1005 1005
1006 def GetDefaultTryConfigs(bots=None):
1007 """Returns a list of ('bot', set(['tests']), optionally filtered by [bots].
1008
1009 To add tests to this list, they MUST be in the the corresponding master's
1010 gatekeeper config. For example, anything on master.chromium would be closed by
1011 /chrome/trunk/tools/build/masters/master.chromium/master_gatekeeper_cfg.py.
1012
1013 If 'bots' is specified, will only return configurations for bots in that list.
1014 """
1015
1016 standard_tests = [
1017 'base_unittests',
1018 'browser_tests',
1019 'cacheinvalidation_unittests',
1020 'check_deps',
1021 'content_browsertests',
1022 'content_unittests',
1023 'crypto_unittests',
1024 #'gfx_unittests',
1025 'gpu_unittests',
1026 'ipc_tests',
1027 'interactive_ui_tests',
1028 'jingle_unittests',
1029 'media_unittests',
1030 'net_unittests',
1031 'ppapi_unittests',
1032 'printing_unittests',
1033 'sql_unittests',
1034 'sync_unit_tests',
1035 'unit_tests',
1036 # Broken in release.
1037 #'url_unittests',
1038 #'webkit_unit_tests',
1039 ]
1040
1041 # Use a smaller set of tests for *_aura, since there's a lot of overlap with
1042 # the corresponding *_rel builders.
1043 # Note: *_aura are Release builders even if their names convey otherwise.
1044 aura_tests = [
1045 'app_list_unittests',
1046 'aura_unittests',
1047 'browser_tests',
1048 'compositor_unittests',
1049 'content_browsertests',
1050 'content_unittests',
1051 'interactive_ui_tests',
1052 'unit_tests',
1053 'views_unittests',
1054 ]
1055 linux_aura_tests = aura_tests[:]
1056 linux_aura_tests.remove('views_unittests')
1057 win7_aura_tests = aura_tests[:]
1058 win7_aura_tests.remove('app_list_unittests')
1059 builders_and_tests = {
1060 # TODO(maruel): Figure out a way to run 'sizes' where people can
1061 # effectively update the perf expectation correctly. This requires a
1062 # clobber=True build running 'sizes'. 'sizes' is not accurate with
1063 # incremental build. Reference:
1064 # http://chromium.org/developers/tree-sheriffs/perf-sheriffs.
1065 # TODO(maruel): An option would be to run 'sizes' but not count a failure
1066 # of this step as a try job failure.
1067 'android_dbg': ['slave_steps'],
1068 'android_clang_dbg': ['slave_steps'],
1069 'android_aosp': ['compile'],
1070 'ios_dbg_simulator': [
1071 'compile',
1072 'base_unittests',
1073 'content_unittests',
1074 'crypto_unittests',
1075 'url_unittests',
1076 'net_unittests',
1077 'sql_unittests',
1078 'ui_unittests',
1079 ],
1080 'ios_rel_device': ['compile'],
1081 'linux_aura': linux_aura_tests,
1082 'linux_asan': ['defaulttests'],
1083 'linux_clang': ['compile'],
1084 'linux_chromeos_clang': ['compile'],
1085 # Note: It is a Release builder even if its name convey otherwise.
1086 'linux_chromeos': standard_tests + [
1087 'app_list_unittests',
1088 'aura_unittests',
1089 'ash_unittests',
1090 'chromeos_unittests',
1091 'components_unittests',
1092 'dbus_unittests',
1093 'device_unittests',
1094 'sandbox_linux_unittests',
1095 ],
1096 'linux_rel': standard_tests + [
1097 'cc_unittests',
1098 'chromedriver2_unittests',
1099 'components_unittests',
1100 'nacl_integration',
1101 'remoting_unittests',
1102 'sandbox_linux_unittests',
1103 'sync_integration_tests',
1104 ],
1105 'mac': ['compile'],
1106 'mac_rel': standard_tests + [
1107 'app_list_unittests',
1108 'cc_unittests',
1109 'chromedriver2_unittests',
1110 'components_unittests',
1111 'google_apis_unittests',
1112 'message_center_unittests',
1113 'nacl_integration',
1114 'remoting_unittests',
1115 'sync_integration_tests',
1116 'telemetry_unittests',
1117 ],
1118 'win': ['compile'],
1119 'win7_aura': win7_aura_tests + [
1120 'ash_unittests',
1121 ],
1122 'win_rel': standard_tests + [
1123 'app_list_unittests',
1124 'cc_unittests',
1125 'chrome_frame_net_tests',
1126 'chrome_frame_tests',
1127 'chrome_frame_unittests',
1128 'chromedriver2_unittests',
1129 'components_unittests',
1130 'installer_util_unittests',
1131 'mini_installer_test',
1132 'nacl_integration',
1133 'remoting_unittests',
1134 'sync_integration_tests',
1135 'telemetry_unittests',
1136 ],
1137 'win_x64_rel': [
1138 'base_unittests',
1139 ],
1140 }
1141
1142 swarm_enabled_builders = (
1143 'linux_rel',
1144 'mac_rel',
1145 )
1146
1147 swarm_enabled_tests = (
1148 'base_unittests',
1149 'browser_tests',
1150 'interactive_ui_tests',
1151 'net_unittests',
1152 'unit_tests',
1153 )
1154
1155 for bot in builders_and_tests:
1156 if bot in swarm_enabled_builders:
1157 builders_and_tests[bot] = [x + '_swarm' if x in swarm_enabled_tests else x
1158 for x in builders_and_tests[bot]]
1159
1160 if bots:
1161 return [(bot, set(builders_and_tests[bot])) for bot in bots]
1162 else:
1163 return [(bot, set(tests)) for bot, tests in builders_and_tests.iteritems()]
1164
1165
1006 def CheckChangeOnCommit(input_api, output_api): 1166 def CheckChangeOnCommit(input_api, output_api):
1007 results = [] 1167 results = []
1008 results.extend(_CommonChecks(input_api, output_api)) 1168 results.extend(_CommonChecks(input_api, output_api))
1009 # TODO(thestig) temporarily disabled, doesn't work in third_party/ 1169 # TODO(thestig) temporarily disabled, doesn't work in third_party/
1010 #results.extend(input_api.canned_checks.CheckSvnModifiedDirectories( 1170 #results.extend(input_api.canned_checks.CheckSvnModifiedDirectories(
1011 # input_api, output_api, sources)) 1171 # input_api, output_api, sources))
1012 # Make sure the tree is 'open'. 1172 # Make sure the tree is 'open'.
1013 results.extend(input_api.canned_checks.CheckTreeIsOpen( 1173 results.extend(input_api.canned_checks.CheckTreeIsOpen(
1014 input_api, 1174 input_api,
1015 output_api, 1175 output_api,
(...skipping 11 matching lines...) Expand all
1027 return results 1187 return results
1028 1188
1029 1189
1030 def GetPreferredTrySlaves(project, change): 1190 def GetPreferredTrySlaves(project, change):
1031 files = change.LocalPaths() 1191 files = change.LocalPaths()
1032 1192
1033 if not files or all(re.search(r'[\\/]OWNERS$', f) for f in files): 1193 if not files or all(re.search(r'[\\/]OWNERS$', f) for f in files):
1034 return [] 1194 return []
1035 1195
1036 if all(re.search('\.(m|mm)$|(^|[/_])mac[/_.]', f) for f in files): 1196 if all(re.search('\.(m|mm)$|(^|[/_])mac[/_.]', f) for f in files):
1037 return ['mac_rel', 'mac:compile'] 1197 return GetDefaultTryConfigs(['mac_rel']) + [
1198 ('mac', set(['compile']))]
1038 if all(re.search('(^|[/_])win[/_.]', f) for f in files): 1199 if all(re.search('(^|[/_])win[/_.]', f) for f in files):
1039 return ['win_rel', 'win7_aura', 'win:compile'] 1200 return GetDefaultTryConfigs(['win_rel', 'win7_aura']) + [
1201 ('win', set(['compile']))]
1040 if all(re.search('(^|[/_])android[/_.]', f) for f in files): 1202 if all(re.search('(^|[/_])android[/_.]', f) for f in files):
1041 return ['android_aosp', 'android_dbg', 'android_clang_dbg'] 1203 return GetDefaultTryConfigs([
1204 'android_aosp',
1205 'android_clang_dbg',
1206 'android_dbg',
1207 ])
1042 if all(re.search('^native_client_sdk', f) for f in files): 1208 if all(re.search('^native_client_sdk', f) for f in files):
1043 return ['linux_nacl_sdk', 'win_nacl_sdk', 'mac_nacl_sdk'] 1209 return GetDefaultTryConfigs([
1210 'linux_nacl_sdk',
1211 'mac_nacl_sdk',
1212 'win_nacl_sdk',
1213 ])
1044 if all(re.search('[/_]ios[/_.]', f) for f in files): 1214 if all(re.search('[/_]ios[/_.]', f) for f in files):
1045 return ['ios_rel_device', 'ios_dbg_simulator'] 1215 return GetDefaultTryConfigs(['ios_rel_device', 'ios_dbg_simulator'])
1046 1216
1047 trybots = [ 1217 trybots = GetDefaultTryConfigs([
1048 'android_clang_dbg', 1218 'android_clang_dbg',
1049 'android_dbg', 1219 'android_dbg',
1050 'ios_dbg_simulator', 1220 'ios_dbg_simulator',
1051 'ios_rel_device', 1221 'ios_rel_device',
1052 'linux_asan', 1222 'linux_asan',
1053 'linux_aura', 1223 'linux_aura',
1054 'linux_chromeos', 1224 'linux_chromeos',
1055 'linux_clang:compile', 1225 'linux_clang',
1056 'linux_rel', 1226 'linux_rel',
1227 'mac',
1057 'mac_rel', 1228 'mac_rel',
1058 'mac:compile', 1229 'win',
1059 'win7_aura', 1230 'win7_aura',
1060 'win_rel', 1231 'win_rel',
1061 'win:compile', 1232 'win_x64_rel',
1062 'win_x64_rel:base_unittests', 1233 ])
1063 ]
1064 1234
1065 # Match things like path/aura/file.cc and path/file_aura.cc. 1235 # Match things like path/aura/file.cc and path/file_aura.cc.
1066 # Same for chromeos. 1236 # Same for chromeos.
1067 if any(re.search('[/_](aura|chromeos)', f) for f in files): 1237 if any(re.search('[/_](aura|chromeos)', f) for f in files):
1068 trybots += ['linux_chromeos_clang:compile', 'linux_chromeos_asan'] 1238 trybots.extend(GetDefaultTryConfigs(['linux_chromeos_clang']))
1239 trybots.append(('linux_chromeos_asan', set(['defaulttests'])))
1069 1240
1070 # If there are gyp changes to base, build, or chromeos, run a full cros build 1241 # If there are gyp changes to base, build, or chromeos, run a full cros build
1071 # in addition to the shorter linux_chromeos build. Changes to high level gyp 1242 # in addition to the shorter linux_chromeos build. Changes to high level gyp
1072 # files have a much higher chance of breaking the cros build, which is 1243 # files have a much higher chance of breaking the cros build, which is
1073 # differnt from the linux_chromeos build that most chrome developers test 1244 # differnt from the linux_chromeos build that most chrome developers test
1074 # with. 1245 # with.
1075 if any(re.search('^(base|build|chromeos).*\.gypi?$', f) for f in files): 1246 if any(re.search('^(base|build|chromeos).*\.gypi?$', f) for f in files):
1076 trybots += ['cros_x86'] 1247 trybots.append(('cros_x86', set(['defaulttests'])))
1077 1248
1078 # The AOSP bot doesn't build the chrome/ layer, so ignore any changes to it 1249 # The AOSP bot doesn't build the chrome/ layer, so ignore any changes to it
1079 # unless they're .gyp(i) files as changes to those files can break the gyp 1250 # unless they're .gyp(i) files as changes to those files can break the gyp
1080 # step on that bot. 1251 # step on that bot.
1081 if (not all(re.search('^chrome', f) for f in files) or 1252 if (not all(re.search('^chrome', f) for f in files) or
1082 any(re.search('\.gypi?$', f) for f in files)): 1253 any(re.search('\.gypi?$', f) for f in files)):
1083 trybots += ['android_aosp'] 1254 trybots.extend(GetDefaultTryConfigs(['android_aosp']))
1084 1255
1085 return trybots 1256 return trybots
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698