[test] Prepare roll-out of new test runner to local runs
This adds a tri-state flag --infra-staging and --no-infra-staging, which can be used to explicitly opt in or out of the staging test runner. If not specified, a new architecture whitelist will enable roll-out per arch for manual (none CI) runs. We'll start whitelisting archs in follow ups. Bug: v8:7343 Change-Id: I1228e48969fd379f5c231a2b8fad4afc01da94c0 Reviewed-on: https://chromium-review.googlesource.com/881169 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#50812}
This commit is contained in:
parent
3fa26f4d1b
commit
ed93f01462
@ -103,6 +103,11 @@ BUILDER_WHITELIST_STAGING = {
|
|||||||
}
|
}
|
||||||
_RE_TYPE = type(re.compile(''))
|
_RE_TYPE = type(re.compile(''))
|
||||||
|
|
||||||
|
# Specifies which architectures are whitelisted to use the staging test-runner.
|
||||||
|
# List of arch strings, e.g. "x64".
|
||||||
|
ARCH_WHITELIST_STAGING = [
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
class StandardTestRunner(base_runner.BaseTestRunner):
|
class StandardTestRunner(base_runner.BaseTestRunner):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
@ -152,7 +157,12 @@ class StandardTestRunner(base_runner.BaseTestRunner):
|
|||||||
help="Additional flags to pass to each test command",
|
help="Additional flags to pass to each test command",
|
||||||
action="append", default=[])
|
action="append", default=[])
|
||||||
parser.add_option("--infra-staging", help="Use new test runner features",
|
parser.add_option("--infra-staging", help="Use new test runner features",
|
||||||
default=False, action="store_true")
|
dest='infra_staging', default=None,
|
||||||
|
action="store_true")
|
||||||
|
parser.add_option("--no-infra-staging",
|
||||||
|
help="Opt out of new test runner features",
|
||||||
|
dest='infra_staging', default=None,
|
||||||
|
action="store_false")
|
||||||
parser.add_option("--isolates", help="Whether to test isolates",
|
parser.add_option("--isolates", help="Whether to test isolates",
|
||||||
default=False, action="store_true")
|
default=False, action="store_true")
|
||||||
parser.add_option("-j", help="The number of parallel tasks to run",
|
parser.add_option("-j", help="The number of parallel tasks to run",
|
||||||
@ -225,8 +235,9 @@ class StandardTestRunner(base_runner.BaseTestRunner):
|
|||||||
help="Number of runs with different random seeds")
|
help="Number of runs with different random seeds")
|
||||||
|
|
||||||
def _use_staging(self, options):
|
def _use_staging(self, options):
|
||||||
if options.infra_staging:
|
if options.infra_staging is not None:
|
||||||
return True
|
# True or False are used to explicitly opt in or out.
|
||||||
|
return options.infra_staging
|
||||||
builder_configs = BUILDER_WHITELIST_STAGING.get(options.mastername, [])
|
builder_configs = BUILDER_WHITELIST_STAGING.get(options.mastername, [])
|
||||||
for builder_config in builder_configs:
|
for builder_config in builder_configs:
|
||||||
if (isinstance(builder_config, _RE_TYPE) and
|
if (isinstance(builder_config, _RE_TYPE) and
|
||||||
@ -234,6 +245,9 @@ class StandardTestRunner(base_runner.BaseTestRunner):
|
|||||||
return True
|
return True
|
||||||
if builder_config == options.buildername:
|
if builder_config == options.buildername:
|
||||||
return True
|
return True
|
||||||
|
for arch in ARCH_WHITELIST_STAGING:
|
||||||
|
if self.build_config.arch == arch:
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _process_options(self, options):
|
def _process_options(self, options):
|
||||||
|
Loading…
Reference in New Issue
Block a user