summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/infra/specs/PRESUBMIT.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/infra/specs/PRESUBMIT.py')
-rw-r--r--third_party/libwebrtc/infra/specs/PRESUBMIT.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/third_party/libwebrtc/infra/specs/PRESUBMIT.py b/third_party/libwebrtc/infra/specs/PRESUBMIT.py
new file mode 100644
index 0000000000..f064cacaf8
--- /dev/null
+++ b/third_party/libwebrtc/infra/specs/PRESUBMIT.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env vpython3
+
+# Copyright (c) 2022 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
+import shlex
+
+# Runs PRESUBMIT.py in py3 mode by git cl presubmit.
+USE_PYTHON3 = True
+
+
+def _HasLocalChanges(input_api):
+ ret = input_api.subprocess.call(['git', 'diff', '--quiet'])
+ return ret != 0
+
+
+def CheckPatchFormatted(input_api, output_api):
+ results = []
+ file_filter = lambda x: x.LocalPath().endswith('.pyl')
+ affected_files = input_api.AffectedFiles(include_deletes=False,
+ file_filter=file_filter)
+
+ for f in affected_files:
+ cmd = ['yapf', '-i', f.AbsoluteLocalPath()]
+ if input_api.subprocess.call(cmd):
+ results.append(
+ output_api.PresubmitError('Error calling "' + shlex.join(cmd) + '"'))
+
+ if _HasLocalChanges(input_api):
+ msg = ('Diff found after running "yapf -i" on modified .pyl files.\n'
+ 'Please commit or discard the new changes.')
+ results.append(output_api.PresubmitError(msg))
+
+ return results
+
+
+def CheckSourceSideSpecs(input_api, output_api):
+ d = os.path.dirname
+ webrtc_root = d(d(input_api.PresubmitLocalPath()))
+ gen_script = os.path.join(webrtc_root, 'testing', 'buildbot',
+ 'generate_buildbot_json.py')
+
+ commands = [
+ input_api.Command(name='generate_buildbot_json',
+ cmd=[
+ input_api.python3_executable, gen_script, '--check',
+ '--verbose', '--pyl-files-dir',
+ input_api.PresubmitLocalPath()
+ ],
+ kwargs={},
+ message=output_api.PresubmitError),
+ ]
+ return input_api.RunTests(commands)
+
+
+def CheckChangeOnUpload(input_api, output_api):
+ results = []
+ results.extend(CheckPatchFormatted(input_api, output_api))
+ results.extend(CheckSourceSideSpecs(input_api, output_api))
+ return results
+
+
+def CheckChangeOnCommit(input_api, output_api):
+ results = []
+ results.extend(CheckPatchFormatted(input_api, output_api))
+ results.extend(CheckSourceSideSpecs(input_api, output_api))
+ return results