naiveproxy/build/chromeos/create_vm_test_script.py

96 lines
2.4 KiB
Python
Raw Normal View History

2018-08-11 08:35:24 +03:00
#!/usr/bin/env python
#
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Creates a script that runs a CrOS VM test by delegating to
build/chromeos/run_vm_test.py.
"""
import argparse
import os
import re
import sys
SCRIPT_TEMPLATE = """\
#!/usr/bin/env python
#
# This file was generated by build/chromeos/create_vm_test_script.py
import os
import sys
def main():
script_directory = os.path.dirname(__file__)
def ResolvePath(path):
return os.path.abspath(os.path.join(script_directory, path))
vm_test_script = os.path.abspath(
os.path.join(script_directory, '{vm_test_script}'))
vm_args = {vm_test_args}
path_args = {vm_test_path_args}
for arg, path in path_args:
vm_args.extend([arg, ResolvePath(path)])
os.execv(vm_test_script,
[vm_test_script] + vm_args + sys.argv[1:])
if __name__ == '__main__':
sys.exit(main())
"""
def main(args):
parser = argparse.ArgumentParser()
parser.add_argument('--script-output-path')
parser.add_argument('--output-directory')
parser.add_argument('--test-exe')
parser.add_argument('--runtime-deps-path')
parser.add_argument('--cros-cache')
parser.add_argument('--board')
args = parser.parse_args(args)
def RelativizePathToScript(path):
return os.path.relpath(path, os.path.dirname(args.script_output_path))
run_test_path = RelativizePathToScript(
os.path.join(os.path.dirname(__file__), 'run_vm_test.py'))
vm_test_args = [
'--board', args.board,
'-v',
]
if args.test_exe:
vm_test_args.extend([
'vm-test',
'--test-exe',
args.test_exe,
])
else:
vm_test_args.append('host-cmd')
vm_test_path_args = [
('--cros-cache', RelativizePathToScript(args.cros_cache)),
]
if args.runtime_deps_path:
vm_test_path_args.append(
('--runtime-deps-path', RelativizePathToScript(args.runtime_deps_path)))
if args.output_directory:
vm_test_path_args.append(
('--path-to-outdir', RelativizePathToScript(args.output_directory)))
with open(args.script_output_path, 'w') as script:
script.write(SCRIPT_TEMPLATE.format(
vm_test_script=run_test_path,
vm_test_args=str(vm_test_args),
vm_test_path_args=str(vm_test_path_args)))
os.chmod(args.script_output_path, 0750)
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))