1# Copyright 2016 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4import os 5import subprocess 6import sys 7 8from telemetry.core import util 9 10 11def Run(project_config, args): 12 assert '--top-level-dir' not in args, ( 13 'Top level directory for running tests should be specified through ' 14 'the instance of telemetry.project_config.ProjectConfig.') 15 assert '--client-config' not in args, ( 16 'Client config file to be used for telemetry should be specified through ' 17 'the instance of telemetry.project_config.ProjectConfig.') 18 assert project_config.top_level_dir, 'Must specify top level dir for project' 19 args.extend(['--top-level-dir', project_config.top_level_dir]) 20 for c in project_config.client_configs: 21 args.extend(['--client-config', c]) 22 for s in project_config.start_dirs: 23 args.extend(['--start-dir', s]) 24 25 if project_config.default_chrome_root and not '--chrome-root' in args: 26 args.extend(['--chrome-root', project_config.default_chrome_root]) 27 28 env = os.environ.copy() 29 telemetry_dir = util.GetTelemetryDir() 30 if 'PYTHONPATH' in env: 31 env['PYTHONPATH'] = os.pathsep.join([env['PYTHONPATH'], telemetry_dir]) 32 else: 33 env['PYTHONPATH'] = telemetry_dir 34 35 path_to_run_tests = os.path.join(os.path.abspath(os.path.dirname(__file__)), 36 'run_browser_tests.py') 37 return subprocess.call([sys.executable, path_to_run_tests] + args, env=env) 38