summaryrefslogtreecommitdiff
path: root/test/testrunner/testrunner.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/testrunner/testrunner.py')
-rwxr-xr-xtest/testrunner/testrunner.py152
1 files changed, 74 insertions, 78 deletions
diff --git a/test/testrunner/testrunner.py b/test/testrunner/testrunner.py
index 3974ccb4f91..88b509d3b70 100755
--- a/test/testrunner/testrunner.py
+++ b/test/testrunner/testrunner.py
@@ -114,6 +114,7 @@ ignore_skips = False
build = False
gdb = False
gdb_arg = ''
+runtime_option = ''
stop_testrunner = False
dex2oat_jobs = -1 # -1 corresponds to default threads for dex2oat
run_all_configs = False
@@ -173,56 +174,37 @@ def setup_test_env():
global _user_input_variants
global run_all_configs
+ # These are the default variant-options we will use if nothing in the group is specified.
+ default_variants = {
+ 'target': {'host', 'target'},
+ 'pictest': {'npictest'},
+ 'prebuild': {'prebuild'},
+ 'cdex_level': {'cdex-fast'},
+ 'jvmti': { 'no-jvmti'},
+ 'compiler': {'optimizing',
+ 'jit',
+ 'interpreter',
+ 'interp-ac',
+ 'speed-profile'},
+ 'relocate': {'no-relocate'},
+ 'trace': {'ntrace'},
+ 'gc': {'cms'},
+ 'jni': {'checkjni'},
+ 'image': {'picimage'},
+ 'pictest': {'pictest'},
+ 'debuggable': {'ndebuggable'},
+ 'run': {'debug'},
+ # address_sizes_target depends on the target so it is dealt with below.
+ }
+ # We want to pull these early since the full VARIANT_TYPE_DICT has a few additional ones we don't
+ # want to pick up if we pass --all.
+ default_variants_keys = default_variants.keys()
if run_all_configs:
- target_types = _user_input_variants['target']
- _user_input_variants = VARIANT_TYPE_DICT
- _user_input_variants['target'] = target_types
-
- if not _user_input_variants['target']:
- _user_input_variants['target'].add('host')
- _user_input_variants['target'].add('target')
-
- if not _user_input_variants['prebuild']: # Default
- _user_input_variants['prebuild'].add('prebuild')
-
- if not _user_input_variants['cdex_level']: # Default
- _user_input_variants['cdex_level'].add('cdex-fast')
-
- # By default only run without jvmti
- if not _user_input_variants['jvmti']:
- _user_input_variants['jvmti'].add('no-jvmti')
-
- # By default we run all 'compiler' variants.
- if not _user_input_variants['compiler'] and _user_input_variants['target'] != 'jvm':
- _user_input_variants['compiler'].add('optimizing')
- _user_input_variants['compiler'].add('jit')
- _user_input_variants['compiler'].add('interpreter')
- _user_input_variants['compiler'].add('interp-ac')
- _user_input_variants['compiler'].add('speed-profile')
-
- if not _user_input_variants['relocate']: # Default
- _user_input_variants['relocate'].add('no-relocate')
-
- if not _user_input_variants['trace']: # Default
- _user_input_variants['trace'].add('ntrace')
+ default_variants = VARIANT_TYPE_DICT
- if not _user_input_variants['gc']: # Default
- _user_input_variants['gc'].add('cms')
-
- if not _user_input_variants['jni']: # Default
- _user_input_variants['jni'].add('checkjni')
-
- if not _user_input_variants['image']: # Default
- _user_input_variants['image'].add('picimage')
-
- if not _user_input_variants['pictest']: # Default
- _user_input_variants['pictest'].add('npictest')
-
- if not _user_input_variants['debuggable']: # Default
- _user_input_variants['debuggable'].add('ndebuggable')
-
- if not _user_input_variants['run']: # Default
- _user_input_variants['run'].add('debug')
+ for key in default_variants_keys:
+ if not _user_input_variants[key]:
+ _user_input_variants[key] = default_variants[key]
_user_input_variants['address_sizes_target'] = collections.defaultdict(set)
if not _user_input_variants['address_sizes']:
@@ -346,6 +328,10 @@ def run_tests(tests):
if gdb_arg:
options_all += ' --gdb-arg ' + gdb_arg
+ if runtime_option:
+ for opt in runtime_option:
+ options_all += ' --runtime-option ' + opt
+
if dex2oat_jobs != -1:
options_all += ' --dex2oat-jobs ' + str(dex2oat_jobs)
@@ -499,9 +485,6 @@ def run_tests(tests):
elif env.ANDROID_COMPILE_WITH_JACK == False:
options_test += ' --build-with-javac-dx'
- if env.USE_D8_BY_DEFAULT == True:
- options_test += ' --build-with-d8'
-
# TODO(http://36039166): This is a temporary solution to
# fix build breakages.
options_test = (' --output-path %s') % (
@@ -921,39 +904,51 @@ def parse_option():
global build
global gdb
global gdb_arg
+ global runtime_option
global timeout
global dex2oat_jobs
global run_all_configs
parser = argparse.ArgumentParser(description="Runs all or a subset of the ART test suite.")
parser.add_argument('-t', '--test', action='append', dest='tests', help='name(s) of the test(s)')
- parser.add_argument('-j', type=int, dest='n_thread')
- parser.add_argument('--timeout', default=timeout, type=int, dest='timeout')
- for variant in TOTAL_VARIANTS_SET:
- flag = '--' + variant
- parser.add_argument(flag, action='store_true', dest=variant)
- parser.add_argument('--verbose', '-v', action='store_true', dest='verbose')
- parser.add_argument('--dry-run', action='store_true', dest='dry_run')
- parser.add_argument("--skip", action="append", dest="skips", default=[],
- help="Skip the given test in all circumstances.")
- parser.add_argument("--no-skips", dest="ignore_skips", action="store_true", default=False,
- help="Don't skip any run-test configurations listed in knownfailures.json.")
- parser.add_argument('--no-build-dependencies',
- action='store_false', dest='build',
- help="Don't build dependencies under any circumstances. This is the " +
- "behavior if ART_TEST_RUN_TEST_ALWAYS_BUILD is not set to 'true'.")
- parser.add_argument('-b', '--build-dependencies',
- action='store_true', dest='build',
- help="Build dependencies under all circumstances. By default we will " +
- "not build dependencies unless ART_TEST_RUN_TEST_BUILD=true.")
- parser.add_argument('--build-target', dest='build_target', help='master-art-host targets')
- parser.set_defaults(build = env.ART_TEST_RUN_TEST_BUILD)
- parser.add_argument('--gdb', action='store_true', dest='gdb')
- parser.add_argument('--gdb-arg', dest='gdb_arg')
- parser.add_argument('--dex2oat-jobs', type=int, dest='dex2oat_jobs',
- help='Number of dex2oat jobs')
- parser.add_argument('-a', '--all', action='store_true', dest='run_all',
- help="Run all the possible configurations for the input test set")
+ global_group = parser.add_argument_group('Global options',
+ 'Options that affect all tests being run')
+ global_group.add_argument('-j', type=int, dest='n_thread')
+ global_group.add_argument('--timeout', default=timeout, type=int, dest='timeout')
+ global_group.add_argument('--verbose', '-v', action='store_true', dest='verbose')
+ global_group.add_argument('--dry-run', action='store_true', dest='dry_run')
+ global_group.add_argument("--skip", action='append', dest="skips", default=[],
+ help="Skip the given test in all circumstances.")
+ global_group.add_argument("--no-skips", dest="ignore_skips", action='store_true', default=False,
+ help="""Don't skip any run-test configurations listed in
+ knownfailures.json.""")
+ global_group.add_argument('--no-build-dependencies',
+ action='store_false', dest='build',
+ help="""Don't build dependencies under any circumstances. This is the
+ behavior if ART_TEST_RUN_TEST_ALWAYS_BUILD is not set to 'true'.""")
+ global_group.add_argument('-b', '--build-dependencies',
+ action='store_true', dest='build',
+ help="""Build dependencies under all circumstances. By default we will
+ not build dependencies unless ART_TEST_RUN_TEST_BUILD=true.""")
+ global_group.add_argument('--build-target', dest='build_target', help='master-art-host targets')
+ global_group.set_defaults(build = env.ART_TEST_RUN_TEST_BUILD)
+ global_group.add_argument('--gdb', action='store_true', dest='gdb')
+ global_group.add_argument('--gdb-arg', dest='gdb_arg')
+ global_group.add_argument('--runtime-option', action='append', dest='runtime_option',
+ help="""Pass an option to the runtime. Runtime options
+ starting with a '-' must be separated by a '=', for
+ example '--runtime-option=-Xjitthreshold:0'.""")
+ global_group.add_argument('--dex2oat-jobs', type=int, dest='dex2oat_jobs',
+ help='Number of dex2oat jobs')
+ global_group.add_argument('-a', '--all', action='store_true', dest='run_all',
+ help="Run all the possible configurations for the input test set")
+ for variant_type, variant_set in VARIANT_TYPE_DICT.items():
+ var_group = parser.add_argument_group(
+ '{}-type Options'.format(variant_type),
+ "Options that control the '{}' variants.".format(variant_type))
+ for variant in variant_set:
+ flag = '--' + variant
+ var_group.add_argument(flag, action='store_true', dest=variant)
options = vars(parser.parse_args())
if options['build_target']:
@@ -986,6 +981,7 @@ def parse_option():
gdb = True
if options['gdb_arg']:
gdb_arg = options['gdb_arg']
+ runtime_option = options['runtime_option'];
timeout = options['timeout']
if options['dex2oat_jobs']:
dex2oat_jobs = options['dex2oat_jobs']