aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xPRESUBMIT.py20
-rw-r--r--tools_webrtc/presubmit_checks_lib/gn_refs.py70
2 files changed, 7 insertions, 83 deletions
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 96cdbf1d13..e533507ac0 100755
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -410,10 +410,6 @@ def _ReportErrorFileAndLineNumber(filename, line_num):
def CheckNoStreamUsageIsAdded(input_api, output_api,
error_formatter=_ReportErrorFileAndLineNumber):
"""Make sure that no more dependencies on stringstream are added."""
- with _AddToPath(input_api.os_path.join(
- input_api.PresubmitLocalPath(), 'tools_webrtc', 'presubmit_checks_lib')):
- from gn_refs import DefaultGnProject, BelongsToTestTarget
-
error_msg = ('Usage of <sstream>, <istream> and <ostream> in WebRTC is '
'deprecated.\n'
'This includes the following types:\n'
@@ -437,15 +433,13 @@ def CheckNoStreamUsageIsAdded(input_api, output_api,
usage_re = input_api.re.compile(r'std::(w|i|o|io|wi|wo|wio)(string)*stream')
no_presubmit_re = input_api.re.compile(
r' // no-presubmit-check TODO\(webrtc:8982\)')
- is_cpp_file = lambda f: f.LocalPath().endswith(('.cc', '.h'))
- with DefaultGnProject() as out_dir:
- for f in input_api.AffectedFiles(file_filter=is_cpp_file):
- if BelongsToTestTarget(f.LocalPath(), out_dir):
- continue
- for line_num, line in f.ChangedContents():
- if ((include_re.search(line) or usage_re.search(line))
- and not no_presubmit_re.search(line)):
- errors.append(error_formatter(f.LocalPath(), line_num))
+ for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
+ if f.LocalPath() == 'PRESUBMIT.py':
+ continue
+ for line_num, line in f.ChangedContents():
+ if ((include_re.search(line) or usage_re.search(line))
+ and not no_presubmit_re.search(line)):
+ errors.append(error_formatter(f.LocalPath(), line_num))
if errors:
return [output_api.PresubmitError(error_msg, errors)]
return []
diff --git a/tools_webrtc/presubmit_checks_lib/gn_refs.py b/tools_webrtc/presubmit_checks_lib/gn_refs.py
deleted file mode 100644
index 3f062eb57f..0000000000
--- a/tools_webrtc/presubmit_checks_lib/gn_refs.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018 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 shutil
-import subprocess
-import sys
-import tempfile
-from contextlib import contextmanager
-
-
-# The module find_depot_tools lives into the ./build directory.
-SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-SRC_DIR = os.path.normpath(os.path.join(SCRIPT_DIR, os.pardir, os.pardir))
-sys.path.append(os.path.join(SRC_DIR, 'build'))
-import find_depot_tools
-
-
-@contextmanager
-def DefaultGnProject():
- """Generates a GN projects with defaul args and returns the path to it."""
- out_dir = tempfile.mkdtemp('gn')
- gen_command = [
- sys.executable,
- os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gn.py'),
- 'gen',
- out_dir,
- ]
- subprocess.check_output(gen_command)
- try:
- yield out_dir
- finally:
- shutil.rmtree(out_dir, ignore_errors=True)
-
-
-def BelongsToTestTarget(file_path, out_dir):
- """Returns True if file_path is part of a testonly build target.
-
- This function relies on 'gn refs'. It actually runs:
- $ gn refs <out_dir> file_path --testonly=true`
-
- Which returns a list of build targets containing file_path (well, only
- one build target should own a file, but that is not a strict rule).
-
- If the list is empty, it means the file is owned by a non-testonly build
- target and the function will return False. Otherwise it will return True.
-
- Args:
- file_path: string with the local path of the file to analyze.
- out_dir: the path to the GN out directory to analyze.
-
- Returns:
- boolean: True if the file belongs to a testonly build target.
- """
- refs_command = [
- sys.executable,
- os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gn.py'),
- 'refs',
- out_dir,
- file_path,
- '--testonly=true'
- ]
- output = subprocess.check_output(refs_command)
- # If file_path belongs to a test target, output will contain a list of them.
- return output != ''