tools_webrtc dir converted to py3 + top level PRESUBMIT script
Bug: webrtc:13607
Change-Id: Ib018e43ea977cc24dd71048e68e3343741f7f31b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249083
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/main@{#35953}
diff --git a/tools_webrtc/coverage/generate_ios_coverage_command.py b/tools_webrtc/coverage/generate_ios_coverage_command.py
index e51bfa7..249d8ce 100644
--- a/tools_webrtc/coverage/generate_ios_coverage_command.py
+++ b/tools_webrtc/coverage/generate_ios_coverage_command.py
@@ -1,4 +1,5 @@
-#!/usr/bin/env python
+#!/usr/bin/env vpython3
+
# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
@@ -46,7 +47,6 @@
========== ENDING OF PATCH ==========
"""
-
import sys
DIRECTORY = 'out/coverage'
@@ -77,89 +77,89 @@
def FormatIossimTest(test_name, is_xctest=False):
- args = ['%s/%s.app' % (DIRECTORY, test_name)]
- if is_xctest:
- args += ['%s/%s_module.xctest' % (DIRECTORY, test_name)]
+ args = ['%s/%s.app' % (DIRECTORY, test_name)]
+ if is_xctest:
+ args += ['%s/%s_module.xctest' % (DIRECTORY, test_name)]
- return '-c \'%s/iossim %s\'' % (DIRECTORY, ' '.join(args))
+ return '-c \'%s/iossim %s\'' % (DIRECTORY, ' '.join(args))
def GetGNArgs(is_simulator):
- target_cpu = 'x64' if is_simulator else 'arm64'
- return ([] + ['target_os="ios"'] + ['target_cpu="%s"' % target_cpu] +
- ['use_clang_coverage=true'] + ['is_component_build=false'] +
- ['dcheck_always_on=true'])
+ target_cpu = 'x64' if is_simulator else 'arm64'
+ return ([] + ['target_os="ios"'] + ['target_cpu="%s"' % target_cpu] +
+ ['use_clang_coverage=true'] + ['is_component_build=false'] +
+ ['dcheck_always_on=true'])
def GenerateIOSSimulatorCommand():
- gn_args_string = ' '.join(GetGNArgs(is_simulator=True))
- gn_cmd = ['gn', 'gen', DIRECTORY, '--args=\'%s\'' % gn_args_string]
+ gn_args_string = ' '.join(GetGNArgs(is_simulator=True))
+ gn_cmd = ['gn', 'gen', DIRECTORY, '--args=\'%s\'' % gn_args_string]
- coverage_cmd = ([sys.executable, 'tools/code_coverage/coverage.py'] +
- ["%s.app" % t for t in XC_TESTS + TESTS] +
- ['-b %s' % DIRECTORY, '-o out/report'] +
- ['-i=\'.*/out/.*|.*/third_party/.*|.*test.*\''] +
- [FormatIossimTest(t, is_xctest=True) for t in XC_TESTS] +
- [FormatIossimTest(t, is_xctest=False) for t in TESTS])
+ coverage_cmd = ([sys.executable, 'tools/code_coverage/coverage.py'] +
+ ["%s.app" % t for t in XC_TESTS + TESTS] +
+ ['-b %s' % DIRECTORY, '-o out/report'] +
+ ['-i=\'.*/out/.*|.*/third_party/.*|.*test.*\''] +
+ [FormatIossimTest(t, is_xctest=True) for t in XC_TESTS] +
+ [FormatIossimTest(t, is_xctest=False) for t in TESTS])
- print 'To get code coverage using iOS sim just run following commands:'
- print ''
- print ' '.join(gn_cmd)
- print ''
- print ' '.join(coverage_cmd)
- return 0
+ print('To get code coverage using iOS sim just run following commands:')
+ print('')
+ print(' '.join(gn_cmd))
+ print('')
+ print(' '.join(coverage_cmd))
+ return 0
def GenerateIOSDeviceCommand():
- gn_args_string = ' '.join(GetGNArgs(is_simulator=False))
+ gn_args_string = ' '.join(GetGNArgs(is_simulator=False))
- coverage_report_cmd = (
- [sys.executable, 'tools/code_coverage/coverage.py'] +
- ['%s.app' % t for t in TESTS] + ['-b %s' % DIRECTORY] +
- ['-o out/report'] + ['-p %s/merged.profdata' % DIRECTORY] +
- ['-i=\'.*/out/.*|.*/third_party/.*|.*test.*\''])
+ coverage_report_cmd = ([sys.executable, 'tools/code_coverage/coverage.py'] +
+ ['%s.app' % t for t in TESTS] + ['-b %s' % DIRECTORY] +
+ ['-o out/report'] +
+ ['-p %s/merged.profdata' % DIRECTORY] +
+ ['-i=\'.*/out/.*|.*/third_party/.*|.*test.*\''])
- print 'Computing code coverage for real iOS device is a little bit tedious.'
- print ''
- print 'You will need:'
- print ''
- print '1. Generate xcode project and open it with Xcode 10+:'
- print ' gn gen %s --ide=xcode --args=\'%s\'' % (DIRECTORY, gn_args_string)
- print ' open %s/all.xcworkspace' % DIRECTORY
- print ''
- print '2. Execute these Run targets manually with Xcode Run button and '
- print 'manually save generated coverage.profraw file to %s:' % DIRECTORY
- print '\n'.join('- %s' % t for t in TESTS)
- print ''
- print '3. Execute these Test targets manually with Xcode Test button and '
- print 'manually save generated coverage.profraw file to %s:' % DIRECTORY
- print '\n'.join('- %s' % t for t in XC_TESTS)
- print ''
- print '4. Merge *.profraw files to *.profdata using llvm-profdata tool:'
- print(' build/mac_files/Xcode.app/Contents/Developer/Toolchains/' +
- 'XcodeDefault.xctoolchain/usr/bin/llvm-profdata merge ' +
- '-o %s/merged.profdata ' % DIRECTORY +
- '-sparse=true %s/*.profraw' % DIRECTORY)
- print ''
- print '5. Generate coverage report:'
- print ' ' + ' '.join(coverage_report_cmd)
- return 0
+ print('Computing code coverage for real iOS device is a little bit tedious.')
+ print('')
+ print('You will need:')
+ print('')
+ print('1. Generate xcode project and open it with Xcode 10+:')
+ print(' gn gen %s --ide=xcode --args=\'%s\'' % (DIRECTORY, gn_args_string))
+ print(' open %s/all.xcworkspace' % DIRECTORY)
+ print('')
+ print('2. Execute these Run targets manually with Xcode Run button and ')
+ print('manually save generated coverage.profraw file to %s:' % DIRECTORY)
+ print('\n'.join('- %s' % t for t in TESTS))
+ print('')
+ print('3. Execute these Test targets manually with Xcode Test button and ')
+ print('manually save generated coverage.profraw file to %s:' % DIRECTORY)
+ print('\n'.join('- %s' % t for t in XC_TESTS))
+ print('')
+ print('4. Merge *.profraw files to *.profdata using llvm-profdata tool:')
+ print((' build/mac_files/Xcode.app/Contents/Developer/Toolchains/' +
+ 'XcodeDefault.xctoolchain/usr/bin/llvm-profdata merge ' +
+ '-o %s/merged.profdata ' % DIRECTORY +
+ '-sparse=true %s/*.profraw' % DIRECTORY))
+ print('')
+ print('5. Generate coverage report:')
+ print(' ' + ' '.join(coverage_report_cmd))
+ return 0
-def Main():
- if len(sys.argv) < 2:
- print 'Please specify type of coverage:'
- print ' %s simulator' % sys.argv[0]
- print ' %s device' % sys.argv[0]
- elif sys.argv[1] == 'simulator':
- GenerateIOSSimulatorCommand()
- elif sys.argv[1] == 'device':
- GenerateIOSDeviceCommand()
- else:
- print 'Unsupported type of coverage'
+def main():
+ if len(sys.argv) < 2:
+ print('Please specify type of coverage:')
+ print(' %s simulator' % sys.argv[0])
+ print(' %s device' % sys.argv[0])
+ elif sys.argv[1] == 'simulator':
+ GenerateIOSSimulatorCommand()
+ elif sys.argv[1] == 'device':
+ GenerateIOSDeviceCommand()
+ else:
+ print('Unsupported type of coverage')
- return 0
+ return 0
if __name__ == '__main__':
- sys.exit(Main())
+ sys.exit(main())