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