Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: mojo/tools/mojob.py

Issue 761573002: Make mojob.py use mopy.config.Config. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: delete _GetIsClang Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | mojo/tools/mopy/config.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/tools/mojob.py
diff --git a/mojo/tools/mojob.py b/mojo/tools/mojob.py
index ca244af1d5c73b5484c96385fdcda464538957fc..a0384f19ab37553d41e6c86795fdbf5b86d7a2f5 100755
--- a/mojo/tools/mojob.py
+++ b/mojo/tools/mojob.py
@@ -23,48 +23,87 @@ def args_to_config(args):
target_os = Config.OS_ANDROID
elif args.chromeos:
target_os = Config.OS_CHROMEOS
- return Config(target_os=target_os, is_debug=args.debug)
-
-def get_out_dir(args):
- paths = Paths(config=args_to_config(args))
+ additional_args = {}
+
+ if 'clang' in args:
+ if args.clang is not None:
+ # If --clang/--gcc is specified, use that.
+ additional_args['is_clang'] = args.clang
+ else:
+ # Otherwise, use the default (use clang for everything except Android and
+ # Windows).
+ additional_args['is_clang'] = (target_os not in (Config.OS_ANDROID,
+ Config.OS_WINDOWS))
+
+ if 'asan' in args and args.asan:
+ additional_args['sanitizer'] = Config.SANITIZER_ASAN
+
+ # Additional non-standard config entries:
+
+ if 'goma' in args:
+ goma_dir = os.environ.get('GOMA_DIR')
+ goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma')
+ if args.goma and goma_dir:
+ additional_args['use_goma'] = True
+ additional_args['goma_dir'] = goma_dir
+ elif args.goma and os.path.exists(goma_home_dir):
+ additional_args['use_goma'] = True
+ additional_args['goma_dir'] = goma_home_dir
+ else:
+ additional_args['use_goma'] = False
+ additional_args['goma_dir'] = None
+
+ if 'with_dart' in args:
+ additional_args['with_dart'] = args.with_dart
+
+ if 'builder_name' in args:
+ additional_args['builder_name'] = args.builder_name
+ if 'build_number' in args:
+ additional_args['build_number'] = args.build_number
+ if 'master_name' in args:
+ additional_args['master_name'] = args.master_name
+ if 'test_results_server' in args:
+ additional_args['test_results_server'] = args.test_results_server
+
+ return Config(target_os=target_os, is_debug=args.debug, **additional_args)
+
+
+def get_out_dir(config):
+ paths = Paths(config)
return paths.SrcRelPath(paths.build_dir)
-def sync(args):
+def sync(config):
# pylint: disable=W0613
return subprocess.call(['gclient', 'sync'])
-def gn(args):
+def gn(config):
command = ['gn', 'gen']
gn_args = []
- gn_args.append('is_debug=' + ('true' if args.debug else 'false'))
- gn_args.append('is_asan=' + ('true' if args.asan else 'false'))
- gn_args.append('is_clang=' + ('true' if args.clang else 'false'))
+ gn_args.append('is_debug=' + ('true' if config.is_debug else 'false'))
+ gn_args.append('is_asan=' + ('true' if config.sanitizer ==
+ Config.SANITIZER_ASAN else 'false'))
+ gn_args.append('is_clang=' + ('true' if config.is_clang else 'false'))
- goma_dir = os.environ.get('GOMA_DIR')
- goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma')
- if args.goma and goma_dir:
- gn_args.append('use_goma=true')
- gn_args.append(r'''goma_dir=\"%s\"''' % goma_dir)
- elif args.goma and os.path.exists(goma_home_dir):
+ if config.values["use_goma"]:
gn_args.append('use_goma=true')
- gn_args.append(r'''goma_dir=\"%s\"''' % goma_home_dir)
+ gn_args.append(r'''goma_dir=\"%s\"''' % config.values["goma_dir"])
else:
gn_args.append('use_goma=false')
- if args.with_dart:
+ if config.values["with_dart"]:
gn_args.append('mojo_use_dart=true')
- if args.android:
+ if config.target_os == Config.OS_ANDROID:
gn_args.append(r'''os=\"android\" cpu_arch=\"arm\"''')
- elif args.chromeos:
+ elif config.target_os == Config.OS_CHROMEOS:
gn_args.append(r'''os=\"chromeos\" ui_base_build_ime=false
use_system_harfbuzz=false''')
- out_dir = get_out_dir(args)
+ out_dir = get_out_dir(config)
command.append(out_dir)
command.append('--args="%s"' % ' '.join(gn_args))
@@ -84,8 +123,8 @@ def get_gn_arg_value(out_dir, arg):
return ''
-def build(args):
- out_dir = get_out_dir(args)
+def build(config):
+ out_dir = get_out_dir(config)
print 'Building in %s ...' % out_dir
if get_gn_arg_value(out_dir, 'use_goma') == 'true':
# Use the configured goma directory.
@@ -104,8 +143,8 @@ def build(args):
return subprocess.call(['ninja', '-C', out_dir, 'root'])
-def run_unittests(args):
- out_dir = get_out_dir(args)
+def run_unittests(config):
+ out_dir = get_out_dir(config)
print 'Running unit tests in %s ...' % out_dir
command = ['python']
if platform.system() == 'Linux':
@@ -118,8 +157,8 @@ def run_unittests(args):
command.append('mojob_test_successes')
return subprocess.call(command)
-def run_apptests(args):
- out_dir = get_out_dir(args)
+def run_apptests(config):
+ out_dir = get_out_dir(config)
print 'Running application tests in %s ...' % out_dir
command = ['python']
if platform.system() == 'Linux':
@@ -131,8 +170,8 @@ def run_apptests(args):
command.append(out_dir)
return subprocess.call(command)
-def run_skytests(args):
- out_dir = get_out_dir(args)
+def run_skytests(config):
+ out_dir = get_out_dir(config)
if platform.system() != 'Linux':
return 0
@@ -141,26 +180,26 @@ def run_skytests(args):
command.append(out_dir)
command.append('sky/tools/test_sky')
command.append('-t')
- command.append('Debug' if args.debug else 'Release')
+ command.append('Debug' if config.is_debug else 'Release')
command.append('--no-new-test-results')
command.append('--no-show-results')
command.append('--verbose')
- if args.builder_name:
+ if config.values["builder_name"]:
command.append('--builder-name')
- command.append(args.builder_name)
+ command.append(config.values["builder_name"])
- if args.build_number:
+ if config.values["build_number"]:
command.append('--build-number')
- command.append(args.build_number)
+ command.append(config.values["build_number"])
- if args.master_name:
+ if config.values["master_name"]:
command.append('--master-name')
- command.append(args.master_name)
+ command.append(config.values["master_name"])
- if args.test_results_server:
+ if config.values["test_results_server"]:
command.append('--test-results-server')
- command.append(args.test_results_server)
+ command.append(config.values["test_results_server"])
subprocess.call(command)
# Sky tests are currently really unstable, so make the step green even if
@@ -168,8 +207,8 @@ def run_skytests(args):
return 0
-def run_pytests(args):
- out_dir = get_out_dir(args)
+def run_pytests(config):
+ out_dir = get_out_dir(config)
print 'Running python tests in %s ...' % out_dir
command = ['python']
command.append(os.path.join('mojo', 'tools', 'run_mojo_python_tests.py'))
@@ -188,12 +227,12 @@ def run_pytests(args):
return subprocess.call(command)
-def test(args):
+def test(config):
test_suites = [run_unittests, run_apptests, run_pytests, run_skytests]
final_exit_code = 0
for test_suite in test_suites:
- exit_code = test_suite(args)
+ exit_code = test_suite(config)
# TODO(ojan): Find a better way to do this. We want to run all the tests
# so we get coverage even if an early test suite fails, but we only have
# one exit code.
@@ -202,20 +241,20 @@ def test(args):
return final_exit_code
-def perftest(args):
- out_dir = get_out_dir(args)
+def perftest(config):
+ out_dir = get_out_dir(config)
print 'Running perf tests in %s ...' % out_dir
command = []
command.append(os.path.join(out_dir, 'mojo_public_system_perftests'))
return subprocess.call(command)
-def pytest(args):
- return run_pytests(args)
+def pytest(config):
+ return run_pytests(config)
-def darttest(args):
- out_dir = get_out_dir(args)
+def darttest(config):
+ out_dir = get_out_dir(config)
print 'Running Dart tests in %s ...' % out_dir
command = []
command.append('dart')
@@ -259,9 +298,9 @@ def main():
gn_parser.add_argument('--with-dart', help='Configure the Dart bindings',
action='store_true')
clang_group = gn_parser.add_mutually_exclusive_group()
- clang_group.add_argument('--clang', help='Use Clang (default)', default=True,
+ clang_group.add_argument('--clang', help='Use Clang (default)', default=None,
action='store_true')
- clang_group.add_argument('--gcc', help='Use GCC', default=False,
+ clang_group.add_argument('--gcc', help='Use GCC',
dest='clang', action='store_false')
goma_group = gn_parser.add_mutually_exclusive_group()
goma_group.add_argument('--goma',
@@ -304,17 +343,8 @@ def main():
darttest_parser.set_defaults(func=darttest)
args = parser.parse_args()
-
- # TODO(vtl): Pass a Config through to everything, instead of args.
-
- # Android always wants GCC.
- if args.android:
- args.clang = False
-
- if platform.system() == 'Windows':
- args.clang = False
-
- return args.func(args)
+ config = args_to_config(args)
+ return args.func(config)
if __name__ == '__main__':
« no previous file with comments | « no previous file | mojo/tools/mopy/config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698