Chromium Code Reviews| Index: tools/perf/PRESUBMIT.py |
| diff --git a/tools/perf/PRESUBMIT.py b/tools/perf/PRESUBMIT.py |
| index 7ac8a1831d5c7f738601cc403023e41a1b73fac2..993ac4f14cf9f975098633056095f7c031dacfea 100644 |
| --- a/tools/perf/PRESUBMIT.py |
| +++ b/tools/perf/PRESUBMIT.py |
| @@ -11,6 +11,10 @@ for more details about the presubmit API built into depot_tools. |
| import os |
| import sys |
| +sys.path = [os.path.join(os.pardir, 'telemetry')] + sys.path |
|
aiolos (Not reviewing)
2015/02/24 18:53:07
PRESUBMIT scripts aren't supposed to have side eff
nednguyen
2015/02/24 19:28:33
Done.
|
| + |
| +from telemetry.util import cloud_storage |
| + |
| PYLINT_BLACKLIST = [] |
| PYLINT_DISABLED_WARNINGS = [ |
| 'R0923', # Interface not implemented |
| @@ -22,17 +26,37 @@ PYLINT_DISABLED_WARNINGS = [ |
| def _CommonChecks(input_api, output_api): |
| """Performs common checks, which includes running pylint.""" |
| results = [] |
| - old_sys_path = sys.path |
| - try: |
| - # Modules in tools/perf depend on telemetry. |
| - sys.path = [os.path.join(os.pardir, 'telemetry')] + sys.path |
| - results.extend(input_api.canned_checks.RunPylint( |
| - input_api, output_api, |
| - black_list=PYLINT_BLACKLIST, |
| - disabled_warnings=PYLINT_DISABLED_WARNINGS)) |
| - results.extend(_CheckJson(input_api, output_api)) |
| - finally: |
| - sys.path = old_sys_path |
| + results.extend(input_api.canned_checks.RunPylint( |
| + input_api, output_api, |
| + black_list=PYLINT_BLACKLIST, |
| + disabled_warnings=PYLINT_DISABLED_WARNINGS)) |
| + results.extend(_CheckJson(input_api, output_api)) |
| + results.extend(_CheckWprShaFiles(input_api, output_api)) |
| + return results |
| + |
| + |
| +def _CheckWprShaFiles(input_api, output_api): |
| + """ Check whether the wpr sha files have matching URLs """ |
|
slamm
2015/02/24 19:22:59
No spaces immediately inside triple quotes.
"""Ch
nednguyen
2015/02/24 19:28:33
Done.
|
| + results = [] |
| + for affected_file in input_api.AffectedFiles(include_deletes=False): |
| + filename = affected_file.AbsoluteLocalPath() |
| + if not filename.endswith('wpr.sha1'): |
| + continue |
| + wpr_file_exist_on_cloud = False |
|
dtu
2015/02/24 19:12:47
nit: wpr_file_exists_in_cloud
slamm
2015/02/24 19:22:59
How about the following?
is_wpr_file_uploaded
or
nednguyen
2015/02/24 19:28:33
Done.
nednguyen
2015/02/24 19:28:33
Done.
|
| + expected_hash = cloud_storage.ReadHash(filename) |
| + for bucket in cloud_storage.SUPPORTED_BUCKETS: |
| + wpr_file_exist_on_cloud = (wpr_file_exist_on_cloud or |
| + cloud_storage.Exists(bucket, expected_hash)) |
|
slamm
2015/02/24 19:22:59
is_wpr_file_uploaded = any(cloud_storage.Exists(bu
nednguyen
2015/02/24 19:28:33
Nice, I like this.
|
| + if not wpr_file_exist_on_cloud: |
| + wpr_filename = filename[:-5] |
| + results.append(output_api.PresubmitError( |
|
aiolos (Not reviewing)
2015/02/24 18:19:45
Should this be a warning instead of an error? Peop
nednguyen
2015/02/24 18:24:40
If they don't commit or upload, then this PRESUBMI
dtu
2015/02/24 19:12:47
I think this is fine. I guess you have to be caref
|
| + 'No URLs matched for wpr sha file %s.\n' |
| + 'You can upload your new wpr archive file with the command:\n' |
| + 'depot_tools/upload_to_google_storage.py --bucket ' |
| + '<Your pageset\'s bucket> %s.\nFor more info: see ' |
| + 'http://www.chromium.org/developers/telemetry/' |
| + 'record_a_page_set#TOC-Upload-the-recording-to-Cloud-Storage' % |
| + (filename, wpr_filename))) |
| return results |