15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"""Top-level presubmit script for deep_memory_profiler.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)details on the presubmit API built into gcl.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"""
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def CommonChecks(input_api, output_api):
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  import sys
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  def join(*args):
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return input_api.os_path.join(input_api.PresubmitLocalPath(), *args)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  output = []
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  sys_path_backup = sys.path
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  try:
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    sys.path = [
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      join('..', 'find_runtime_symbols'),
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ] + sys.path
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    output.extend(input_api.canned_checks.RunPylint(input_api, output_api))
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  finally:
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    sys.path = sys_path_backup
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  output.extend(
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      input_api.canned_checks.RunUnitTestsInDirectory(
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          input_api, output_api,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          input_api.os_path.join(input_api.PresubmitLocalPath(), 'tests'),
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          whitelist=[r'.+_test\.py$']))
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if input_api.is_committing:
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    output.extend(input_api.canned_checks.PanProjectChecks(input_api,
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                           output_api,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                                           owners_check=False))
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return output
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def CheckChangeOnUpload(input_api, output_api):
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return CommonChecks(input_api, output_api)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def CheckChangeOnCommit(input_api, output_api):
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return CommonChecks(input_api, output_api)
46