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) |