OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 memory_inspector. | 5 """Top-level presubmit script for memory_inspector. |
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 | 11 |
12 def CommonChecks(input_api, output_api): | 12 def _CommonChecks(input_api, output_api): |
13 output = [] | 13 output = [] |
14 blacklist = [r'classification_rules.*'] | 14 blacklist = [r'classification_rules.*'] |
15 output.extend(input_api.canned_checks.RunPylint( | 15 output.extend(input_api.canned_checks.RunPylint( |
16 input_api, output_api, black_list=blacklist, | 16 input_api, output_api, black_list=blacklist, |
17 extra_paths_list=[ | 17 extra_paths_list=[ |
18 input_api.os_path.join(input_api.PresubmitLocalPath(), '..', '..', | 18 input_api.os_path.join(input_api.PresubmitLocalPath(), '..', '..', |
19 'build', 'android') | 19 'build', 'android') |
20 ])) | 20 ])) |
21 output.extend(input_api.canned_checks.RunUnitTests( | 21 output.extend(input_api.canned_checks.RunUnitTests( |
22 input_api, | 22 input_api, |
23 output_api, | 23 output_api, |
24 [input_api.os_path.join(input_api.PresubmitLocalPath(), 'run_tests')])) | 24 [input_api.os_path.join(input_api.PresubmitLocalPath(), 'run_tests')])) |
25 | 25 |
26 if input_api.is_committing: | 26 if input_api.is_committing: |
27 output.extend(input_api.canned_checks.PanProjectChecks(input_api, | 27 output.extend(input_api.canned_checks.PanProjectChecks(input_api, |
28 output_api, | 28 output_api, |
29 owners_check=False)) | 29 owners_check=False)) |
30 return output | 30 return output |
31 | 31 |
32 | 32 |
| 33 def _CheckPrebuiltsAreUploaded(input_api, output_api): |
| 34 import sys |
| 35 import urllib2 |
| 36 old_sys_path = sys.path |
| 37 try: |
| 38 sys.path.append(input_api.os_path.join(input_api.PresubmitLocalPath())) |
| 39 from memory_inspector import constants |
| 40 finally: |
| 41 sys.path = old_sys_path |
| 42 missing_files = [] |
| 43 for f in input_api.os_listdir(constants.PREBUILTS_PATH): |
| 44 if not f.endswith('.sha1'): |
| 45 continue |
| 46 prebuilt_sha_path = input_api.os_path.join(constants.PREBUILTS_PATH, f) |
| 47 with open(prebuilt_sha_path) as sha_file: |
| 48 sha = sha_file.read().strip() |
| 49 url = constants.PREBUILTS_BASE_URL + sha |
| 50 request = urllib2.Request(url) |
| 51 request.get_method = lambda : 'HEAD' |
| 52 try: |
| 53 urllib2.urlopen(request) |
| 54 except Exception, e: |
| 55 if isinstance(e, urllib2.HTTPError) and e.code == 404: |
| 56 missing_files += [prebuilt_sha_path] |
| 57 else: |
| 58 return [output_api.PresubmitError('HTTP Error while checking %s' % url, |
| 59 long_text=str(e))] |
| 60 if missing_files: |
| 61 return [output_api.PresubmitError( |
| 62 'Some prebuilts have not been uploaded. Perhaps you forgot to ' |
| 63 'upload_to_google_storage.py?', missing_files)] |
| 64 return [] |
| 65 |
| 66 |
33 def CheckChangeOnUpload(input_api, output_api): | 67 def CheckChangeOnUpload(input_api, output_api): |
34 return CommonChecks(input_api, output_api) | 68 results = [] |
| 69 results.extend(_CommonChecks(input_api, output_api)) |
| 70 results.extend(_CheckPrebuiltsAreUploaded(input_api, output_api)) |
| 71 return results |
35 | 72 |
36 | 73 |
37 def CheckChangeOnCommit(input_api, output_api): | 74 def CheckChangeOnCommit(input_api, output_api): |
38 return CommonChecks(input_api, output_api) | 75 return _CommonChecks(input_api, output_api) |
OLD | NEW |