From bd33ce26202272177af6c52e195e7c13f0d1bf23 Mon Sep 17 00:00:00 2001 From: Mirko Bonadei Date: Wed, 10 Jul 2019 19:21:20 +0200 Subject: [PATCH] Reland "Add wrapper to normalize flags." This is a reland of 642a49d1eb20b8c5744e745de79ddb585e0f7472 The change has the same effect but is now implemented through mb, rather than specifying a 'script', so that Android's special handling is not skipped. Original change's description: > Add wrapper to normalize flags. > > Bug: None > Change-Id: I9d43602cc66198a29dbc0e7586d948ee76c5ec84 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145204 > Commit-Queue: Mirko Bonadei > Reviewed-by: Oleh Prypin > Cr-Commit-Position: refs/heads/master@{#28532} Bug: webrtc:10616 Change-Id: I60ebd4891dbe8de18c653f8af88181ea966307de Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145409 Commit-Queue: Oleh Prypin Reviewed-by: Mirko Bonadei Cr-Commit-Position: refs/heads/master@{#28572} --- tools_webrtc/flags_compatibility.py | 48 +++++++++++++++++++++++++++++ tools_webrtc/mb/gn_isolate_map.pyl | 1 - tools_webrtc/mb/mb.py | 16 ++++++---- tools_webrtc/mb/mb_unittest.py | 2 ++ 4 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 tools_webrtc/flags_compatibility.py diff --git a/tools_webrtc/flags_compatibility.py b/tools_webrtc/flags_compatibility.py new file mode 100644 index 0000000000..9a3e5a14bf --- /dev/null +++ b/tools_webrtc/flags_compatibility.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +# Copyright (c) 2019 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 argparse +import logging +import subprocess +import sys + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--isolated-script-test-output') + parser.add_argument('--isolated-script-test-perf-output') + args, unrecognized_args = parser.parse_known_args() + + test_command = _ForcePythonInterpreter(unrecognized_args) + if args.isolated_script_test_output: + test_command += ['--isolated_script_test_output', + args.isolated_script_test_output] + if args.isolated_script_test_perf_output: + test_command += ['--isolated_script_test_perf_output', + args.isolated_script_test_perf_output] + logging.info('Running %r', test_command) + + return subprocess.call(test_command) + + +def _ForcePythonInterpreter(cmd): + """Returns the fixed command line to call the right python executable.""" + out = cmd[:] + if out[0] == 'python': + out[0] = sys.executable + elif out[0].endswith('.py'): + out.insert(0, sys.executable) + return out + + +if __name__ == '__main__': + # pylint: disable=W0101 + logging.basicConfig(level=logging.INFO) + sys.exit(main()) diff --git a/tools_webrtc/mb/gn_isolate_map.pyl b/tools_webrtc/mb/gn_isolate_map.pyl index 43bdc17254..e38c3b83a5 100644 --- a/tools_webrtc/mb/gn_isolate_map.pyl +++ b/tools_webrtc/mb/gn_isolate_map.pyl @@ -126,7 +126,6 @@ }, "webrtc_perf_tests": { "label": "//:webrtc_perf_tests", - "timeout": 3600, # 1 hour "type": "raw", }, } diff --git a/tools_webrtc/mb/mb.py b/tools_webrtc/mb/mb.py index 43b9cb400d..9628a673ae 100755 --- a/tools_webrtc/mb/mb.py +++ b/tools_webrtc/mb/mb.py @@ -822,15 +822,19 @@ class MetaBuildWrapper(object): '../../testing/test_env.py', ] + if test_type == 'raw': + cmdline.append('../../tools_webrtc/flags_compatibility.py') + extra_files.append('../../tools_webrtc/flags_compatibility.py') + must_retry = False if test_type == 'script': - cmdline = ['../../' + self.ToSrcRelPath(isolate_map[target]['script'])] + cmdline += ['../../' + self.ToSrcRelPath(isolate_map[target]['script'])] elif is_android: - cmdline = ['../../build/android/test_wrapper/logdog_wrapper.py', - '--target', target, - '--logdog-bin-cmd', '../../bin/logdog_butler', - '--logcat-output-file', '${ISOLATED_OUTDIR}/logcats', - '--store-tombstones'] + cmdline += ['../../build/android/test_wrapper/logdog_wrapper.py', + '--target', target, + '--logdog-bin-cmd', '../../bin/logdog_butler', + '--logcat-output-file', '${ISOLATED_OUTDIR}/logcats', + '--store-tombstones'] else: if isolate_map[target].get('use_webcam', False): cmdline.append('../../tools_webrtc/ensure_webcam_is_running.py') diff --git a/tools_webrtc/mb/mb_unittest.py b/tools_webrtc/mb/mb_unittest.py index c17800061a..3ae386986b 100755 --- a/tools_webrtc/mb/mb_unittest.py +++ b/tools_webrtc/mb/mb_unittest.py @@ -453,9 +453,11 @@ class UnitTest(unittest.TestCase): self.assertEqual(files, [ '../../.vpython', '../../testing/test_env.py', + '../../tools_webrtc/flags_compatibility.py', 'base_unittests', ]) self.assertEqual(command, [ + '../../tools_webrtc/flags_compatibility.py', '../../testing/test_env.py', './base_unittests', '--asan=0',