Reland "Reland "Add wrapper to normalize flags.""
This is a reland of bd33ce26202272177af6c52e195e7c13f0d1bf23
Now it doesn't apply flags_compatibility to Android, because the device runner actually requires it to be dashes (so it can intercept the flag and substitute it with an Android-local file path), but that's OK because the runner also already passes the flag with underscores: https://cs.chromium.org/?q=%22--isolated_script_test_perf_output%22
Original change's description:
> 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 <mbonadei@webrtc.org>
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > 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 <oprypin@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28572}
Bug: webrtc:10616
Change-Id: I56aae5475aed62f069c5cecc01b75d7d6ffcf568
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145920
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28589}
diff --git a/tools_webrtc/flags_compatibility.py b/tools_webrtc/flags_compatibility.py
new file mode 100644
index 0000000..9a3e5a1
--- /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())