172f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com#!/usr/bin/env python
272f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com# Copyright (c) 2012 The LibYuv Project Authors. All rights reserved.
372f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com#
472f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com# Use of this source code is governed by a BSD-style license
572f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com# that can be found in the LICENSE file in the root of the source
672f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com# tree. An additional intellectual property rights grant can be found
772f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com# in the file PATENTS.  All contributing project authors may
872f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com# be found in the AUTHORS file in the root of the source tree.
972f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
1072f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comimport os
1172f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comimport re
1272f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comimport sys
1372f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
1472f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com"""
1572f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comCopied from Chrome's src/tools/valgrind/tsan/PRESUBMIT.py
1672f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
1772f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comSee http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
1872f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comfor more details on the presubmit API built into gcl.
1972f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com"""
2072f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
2172f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comdef CheckChange(input_api, output_api):
2272f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  """Checks the TSan suppressions files for bad suppressions."""
2372f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
2472f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  # Add the path to the Chrome valgrind dir to the import path:
2572f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  tools_vg_path = os.path.join(input_api.PresubmitLocalPath(), '..', '..',
2672f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com                               'valgrind')
2772f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  sys.path.append(tools_vg_path)
2872f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  import suppressions
2972f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
3072f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  return suppressions.PresubmitCheck(input_api, output_api)
3172f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
3272f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comdef CheckChangeOnUpload(input_api, output_api):
3372f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  return CheckChange(input_api, output_api)
3472f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
3572f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comdef CheckChangeOnCommit(input_api, output_api):
3672f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  return CheckChange(input_api, output_api)
3772f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com
3872f428db148f97e97f861b103d7fff1d53032a71kjellander@google.comdef GetPreferredTrySlaves():
3972f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  # We don't have any tsan slaves yet, so there's no use for this method.
4072f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  # When we have, the slave name(s) should be put into this list.
4172f428db148f97e97f861b103d7fff1d53032a71kjellander@google.com  return []
42