blob: df96ceeda7f2a3fb319ec5c153c65b516d9fdc57 [file]
#!/usr/bin/env vpython3
#
# Copyright 2019 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.
"""
Run unit tests on a pinned version of chrome after automatically compiling the required files
"""
import argparse
import subprocess
import sys
from os import path
import run_unittests
import devtools_paths
build_scripts_path = path.join(path.dirname(path.abspath(__file__)), '..', 'build')
sys.path.append(build_scripts_path)
import efficiently_recompile
def popen(arguments, cwd=None):
return subprocess.Popen(arguments, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
def main():
parser = argparse.ArgumentParser(description='Recompile Ninja targets.')
parser.add_argument(
'--target', '-t', default='Default', dest='target', help='The name of the Ninja output directory. Defaults to "Default"')
parser.add_argument(
'--no-text-coverage', action='store_true', default=False, dest='no_text_coverage', help='Whether to output text coverage')
parser.add_argument('--no-html-coverage',
action='store_true',
default=False,
dest='no_html_coverage',
help='Whether to output html coverage')
parser.add_argument('--coverage',
action='store_true',
default=False,
dest='coverage',
help='Whether to output coverage')
parser.add_argument('--expanded-reporting',
action='store_true',
default=False,
dest='expanded_reporting',
help='Whether to output expanded report info')
parser.add_argument('--chrome-binary',
dest='chrome_binary',
help='Path to Chromium binary')
parser.add_argument('--cwd',
dest='cwd',
help='Path to the directory containing the out dir',
default=devtools_paths.devtools_root_path())
parser.add_argument('--mocha-fgrep',
dest='mocha_fgrep',
help='Run only tests that match this string.')
args = parser.parse_args(sys.argv[1:])
efficiently_recompile.recompile(args.target, 'test/unittests')
run_unittests.run_unit_tests_on_ninja_build_target(
args.target, args.no_text_coverage, args.no_html_coverage,
args.coverage, args.expanded_reporting, args.chrome_binary, args.cwd,
args.mocha_fgrep)
if __name__ == '__main__':
main()