summaryrefslogtreecommitdiff
path: root/chromium/third_party/ffmpeg/PRESUBMIT.py
blob: 280383cd01e1245a65f0c4ca8bfe351ffb824ced (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Presubmit script for FFmpeg repository.

Does the following:
- Warns users that changes must be submitted via Gerrit.
- Warns users when a change is made without updating the README file.
"""

import re
import subprocess


def _WarnIfReadmeIsUnchanged(input_api, output_api):
  """Warn if the README file hasn't been updated with change notes."""
  readme_re = re.compile(r'.*[/\\]?chromium[/\\]patches[/\\]README$')
  for f in input_api.AffectedFiles():
    if readme_re.match(f.LocalPath()):
      return []

  return [output_api.PresubmitPromptWarning('\n'.join([
      'FFmpeg changes detected without any update to chromium/patches/README,',
      'it\'s good practice to update this file with a note about your changes.'
  ]))]


def _WarnIfGenerateGnTestsFail(input_api, output_api):
  """Error if generate_gn.py was changed and tests are now failing."""
  should_run_tests = False
  generate_gn_re = re.compile(r'.*generate_gn.*\.py$')
  for f in input_api.AffectedFiles():
    if generate_gn_re.match(f.LocalPath()):
      should_run_tests = True
      break;

  errors = []
  if should_run_tests:
    errors += input_api.RunTests(
        input_api.canned_checks.GetUnitTests(
            input_api, output_api,
            ['chromium/scripts/generate_gn_unittest.py']))

  return errors

def CheckChangeOnUpload(input_api, output_api):
  results = []
  results.extend(_WarnIfReadmeIsUnchanged(input_api, output_api))
  results.extend(_WarnIfGenerateGnTestsFail(input_api, output_api))
  return results