blob: c2dfd0e6fd2635b83efb60f7e20f4ad4aa759869 [file] [log] [blame]
# Copyright (c) 2012 The WebRTC 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 in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import os
def _LicenseHeader(input_api):
"""Returns the license header regexp."""
# Accept any year number from 2003 to the current year
current_year = int(input_api.time.strftime('%Y'))
allowed_years = (str(s) for s in reversed(xrange(2003, current_year + 1)))
years_re = '(' + '|'.join(allowed_years) + ')'
license_header = (
r'.*? Copyright( \(c\))? %(year)s The WebRTC [Pp]roject [Aa]uthors\. '
r'All [Rr]ights [Rr]eserved\.\n'
r'.*?\n'
r'.*? Use of this source code is governed by a BSD-style license\n'
r'.*? that can be found in the LICENSE file in the root of the source\n'
r'.*? tree\. An additional intellectual property rights grant can be '
r'found\n'
r'.*? in the file PATENTS\. All contributing project authors may\n'
r'.*? be found in the AUTHORS file in the root of the source tree\.\n'
) % {
'year': years_re,
}
return license_header
def _CheckValgrindFiles(input_api, output_api):
"""Check that valgrind-webrtc.gni contains all existing files."""
valgrind_dir = os.path.join('tools_webrtc', 'valgrind')
with open(os.path.join('valgrind', 'valgrind-webrtc.gni')) as f:
valgrind_webrtc = f.read()
results = []
for f in input_api.AffectedFiles():
f = f.LocalPath()
if (f.startswith(valgrind_dir)
and f not in valgrind_webrtc
and not f.endswith('valgrind-webrtc.gni')):
results.append(' * %s\n' % f)
if results:
results = [output_api.PresubmitError(
'The following files are not listed in '
'tools_webrtc/valgrind/valgrind-webrt.gni. Please add them, so they can '
'be isolated and uploaded to swarming:\n' +
''.join(file_path for file_path in results))]
return results
def _CommonChecks(input_api, output_api):
"""Checks common to both upload and commit."""
results = []
results.extend(input_api.canned_checks.CheckLicense(
input_api, output_api, _LicenseHeader(input_api)))
results.extend(_CheckValgrindFiles(input_api, output_api))
return results
def CheckChangeOnUpload(input_api, output_api):
results = []
results.extend(_CommonChecks(input_api, output_api))
return results
def CheckChangeOnCommit(input_api, output_api):
results = []
results.extend(_CommonChecks(input_api, output_api))
return results