Chromium Code Reviews| Index: tools/memory_inspector/PRESUBMIT.py |
| diff --git a/tools/memory_inspector/PRESUBMIT.py b/tools/memory_inspector/PRESUBMIT.py |
| index 5d0e21e3d35ec130486171526ef8518fef52cd38..57ffba0cda3f29183358499d924b4ddcc33af256 100644 |
| --- a/tools/memory_inspector/PRESUBMIT.py |
| +++ b/tools/memory_inspector/PRESUBMIT.py |
| @@ -9,7 +9,7 @@ details on the presubmit API built into gcl. |
| """ |
| -def CommonChecks(input_api, output_api): |
| +def _CommonChecks(input_api, output_api): |
| output = [] |
| blacklist = [r'classification_rules.*'] |
| output.extend(input_api.canned_checks.RunPylint( |
| @@ -30,9 +30,46 @@ def CommonChecks(input_api, output_api): |
| return output |
| +def _CheckPrebuiltsAreUploaded(input_api, output_api): |
|
M-A Ruel
2014/09/16 13:00:19
Could you add a short docstring about what it does
Primiano Tucci (use gerrit)
2014/09/16 13:48:02
Done.
|
| + import sys |
| + import urllib2 |
| + old_sys_path = sys.path |
| + try: |
| + sys.path = [input_api.PresubmitLocalPath()] + sys.path |
| + from memory_inspector import constants |
| + finally: |
| + sys.path = old_sys_path |
| + missing_files = [] |
| + for f in input_api.os_listdir(constants.PREBUILTS_PATH): |
| + if not f.endswith('.sha1'): |
| + continue |
| + prebuilt_sha_path = input_api.os_path.join(constants.PREBUILTS_PATH, f) |
| + with open(prebuilt_sha_path) as sha_file: |
| + sha = sha_file.read().strip() |
| + url = constants.PREBUILTS_BASE_URL + sha |
| + request = urllib2.Request(url) |
| + request.get_method = lambda : 'HEAD' |
| + try: |
| + urllib2.urlopen(request, timeout=5) |
| + except Exception as e: |
| + if isinstance(e, urllib2.HTTPError) and e.code == 404: |
| + missing_files += [prebuilt_sha_path] |
| + else: |
| + return [output_api.PresubmitError('HTTP Error while checking %s' % url, |
| + long_text=str(e))] |
| + if missing_files: |
| + return [output_api.PresubmitError( |
| + 'Some prebuilts have not been uploaded. Perhaps you forgot to ' |
| + 'upload_to_google_storage.py?', missing_files)] |
| + return [] |
| + |
| + |
| def CheckChangeOnUpload(input_api, output_api): |
| - return CommonChecks(input_api, output_api) |
| + results = [] |
| + results.extend(_CommonChecks(input_api, output_api)) |
| + results.extend(_CheckPrebuiltsAreUploaded(input_api, output_api)) |
| + return results |
| def CheckChangeOnCommit(input_api, output_api): |
| - return CommonChecks(input_api, output_api) |
| + return _CommonChecks(input_api, output_api) |