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

Unified Diff: tools/perf/PRESUBMIT.py

Issue 2713553008: Add PRESUBMIT to make sure that perf JSON configs are always up-to-date (Closed)
Patch Set: Address Randy's nits Created 3 years, 10 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/perf/generate_perf_json.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/PRESUBMIT.py
diff --git a/tools/perf/PRESUBMIT.py b/tools/perf/PRESUBMIT.py
index 25fe5f49f644c2145c85a5e8c0c4902170a7f783..13815ee7320cf7032b22b1677d4b30c66476a85f 100644
--- a/tools/perf/PRESUBMIT.py
+++ b/tools/perf/PRESUBMIT.py
@@ -18,6 +18,7 @@ def _CommonChecks(input_api, output_api):
results.extend(_CheckWprShaFiles(input_api, output_api))
results.extend(_CheckJson(input_api, output_api))
+ results.extend(_CheckPerfJsonUpToDate(input_api, output_api))
results.extend(input_api.RunTests(input_api.canned_checks.GetPylint(
input_api, output_api, extra_paths_list=_GetPathsToPrepend(input_api),
pylintrc='pylintrc')))
@@ -38,6 +39,26 @@ def _GetPathsToPrepend(input_api):
]
+def _RunArgs(args, input_api):
+ p = input_api.subprocess.Popen(args, stdout=input_api.subprocess.PIPE,
+ stderr=input_api.subprocess.STDOUT)
+ out, _ = p.communicate()
+ return (out, p.returncode)
+
+
+def _CheckPerfJsonUpToDate(input_api, output_api):
+ results = []
+ perf_dir = input_api.PresubmitLocalPath()
+ out, return_code = _RunArgs([
+ input_api.python_executable,
+ input_api.os_path.join(perf_dir, 'generate_perf_json.py'),
+ '--validate-only'], input_api)
+ if return_code:
+ results.append(output_api.PresubmitError(
+ 'Validating Perf JSON configs failed.', long_text=out))
+ return results
+
+
def _CheckWprShaFiles(input_api, output_api):
"""Check whether the wpr sha files have matching URLs."""
old_sys_path = sys.path
« no previous file with comments | « no previous file | tools/perf/generate_perf_json.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698