| #!/usr/bin/env python |
| # |
| # Copyright 2016 the V8 project authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """v8_inspect presubmit script |
| |
| See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts |
| for more details about the presubmit API built into gcl. |
| """ |
| |
| compile_note = "Be sure to run your patch by the compile-scripts.py script prior to committing!" |
| |
| |
| def _CompileScripts(input_api, output_api): |
| local_paths = [f.LocalPath() for f in input_api.AffectedFiles()] |
| |
| compilation_related_files = [ |
| "js_protocol.json" |
| "compile-scripts.js", |
| "injected-script-source.js", |
| "injected_script_externs.js", |
| "check_injected_script_source.js" |
| ] |
| |
| for file in compilation_related_files: |
| if (any(file in path for path in local_paths)): |
| script_path = input_api.os_path.join(input_api.PresubmitLocalPath(), |
| "build", "compile-scripts.py") |
| proc = input_api.subprocess.Popen( |
| [input_api.python_executable, script_path], |
| stdout=input_api.subprocess.PIPE, |
| stderr=input_api.subprocess.STDOUT) |
| out, _ = proc.communicate() |
| if "ERROR" in out or "WARNING" in out or proc.returncode: |
| return [output_api.PresubmitError(out)] |
| if "NOTE" in out: |
| return [output_api.PresubmitPromptWarning(out + compile_note)] |
| return [] |
| return [] |
| |
| |
| def CheckChangeOnUpload(input_api, output_api): |
| results = [] |
| results.extend(_CompileScripts(input_api, output_api)) |
| return results |
| |
| |
| def CheckChangeOnCommit(input_api, output_api): |
| results = [] |
| results.extend(_CompileScripts(input_api, output_api)) |
| return results |
| |
| def PostUploadHook(cl, change, output_api): |
| """git cl upload will call this hook after the issue is created/modified. |
| |
| This hook adds extra try bots to the CL description in order to run layout |
| tests in addition to CQ try bots. |
| """ |
| return output_api.EnsureCQIncludeTrybotsAreAdded( |
| cl, |
| [ |
| 'master.tryserver.blink:linux_trusty_blink_rel' |
| ], |
| 'Automatically added layout test trybots to run tests on CQ.') |