Bug 1363409: ensure e10s talos have -e10s in their try name
This unifies the `try-name` property in test descriptions, and ensures that
e10s try jobs have `-e10s` at the end so that try syntax like "-t chromez-e10s"
will work.
MozReview-Commit-ID: 2AEFfAFF5Jl
--- a/taskcluster/ci/test/tests.yml
+++ b/taskcluster/ci/test/tests.yml
@@ -111,17 +111,17 @@ crashtest:
tier:
by-test-platform:
linux64-qr/.*: 1
default: default
external-media-tests-base:
description: "External Media Test run"
suite: external-media-tests
- unittest-try-name: 'media-tests'
+ try-name: 'media-tests'
treeherder-symbol: tc-VP(b-m)
e10s: false
tier: 2
max-run-time: 5400
docker-image: {"in-tree": "desktop1604-test"}
run-on-projects:
by-test-platform:
windows.*: ['mozilla-central', 'try']
@@ -135,17 +135,17 @@ external-media-tests-base:
default:
- mediatests/taskcluster_posix_config.py
- remove_executables.py
external-media-tests-twitch:
description: "External Media Test Twitch run"
suite: external-media-tests/twitch
treeherder-symbol: tc-VP(b-t)
- unittest-try-name: media-twitch-tests
+ try-name: media-twitch-tests
e10s: false
instance-size:
by-test-platform:
default: default
tier: 2
max-run-time: 5400
docker-image: {"in-tree": "desktop1604-test"}
run-on-projects:
@@ -162,17 +162,17 @@ external-media-tests-twitch:
- mediatests/taskcluster_posix_config.py
- remove_executables.py
extra-options:
- "--suite=media-twitch-tests"
external-media-tests-youtube:
description: "External Media Test Youtube run"
suite: external-media-tests/youtube
- unittest-try-name: media-youtube-tests
+ try-name: media-youtube-tests
treeherder-symbol: tc-VP(b-y)
e10s: false
tier: 2
max-run-time: 5400
docker-image: {"in-tree": "desktop1604-test"}
run-on-projects:
by-test-platform:
windows.*: ['mozilla-central', 'try']
@@ -1175,17 +1175,17 @@ robocop:
config:
- android/androidarm_4_3.py
extra-options:
- --test-suite=robocop
talos-chrome:
description: "Talos chrome"
suite: talos
- talos-try-name: chromez
+ try-name: chromez
treeherder-symbol: tc-T(c)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1202,17 +1202,17 @@ talos-chrome:
extra-options:
- --suite=chromez
- --add-option
- --webServer,localhost
talos-dromaeojs:
description: "Talos dromaeojs"
suite: talos
- talos-try-name: dromaeojs
+ try-name: dromaeojs
treeherder-symbol: tc-T(d)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1229,17 +1229,17 @@ talos-dromaeojs:
extra-options:
- --suite=dromaeojs
- --add-option
- --webServer,localhost
talos-g1:
description: "Talos g1"
suite: talos
- talos-try-name: g1
+ try-name: g1
treeherder-symbol: tc-T(g1)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1256,17 +1256,17 @@ talos-g1:
extra-options:
- --suite=g1
- --add-option
- --webServer,localhost
talos-g2:
description: "Talos g2"
suite: talos
- talos-try-name: g2
+ try-name: g2
treeherder-symbol: tc-T(g2)
max-run-time: 3600
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
e10s: true
mozharness:
@@ -1283,17 +1283,17 @@ talos-g2:
extra-options:
- --suite=g2
- --add-option
- --webServer,localhost
talos-g3:
description: "Talos g3"
suite: talos
- talos-try-name: g3
+ try-name: g3
treeherder-symbol: tc-T(g3)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1310,17 +1310,17 @@ talos-g3:
extra-options:
- --suite=g3
- --add-option
- --webServer,localhost
talos-g4:
description: "Talos g4"
suite: talos
- talos-try-name: g4
+ try-name: g4
treeherder-symbol: tc-T(g4)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1337,17 +1337,17 @@ talos-g4:
extra-options:
- --suite=g4
- --add-option
- --webServer,localhost
talos-other:
description: "Talos other"
suite: talos
- talos-try-name: other
+ try-name: other
treeherder-symbol: tc-T(o)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1364,17 +1364,17 @@ talos-other:
extra-options:
- --suite=other
- --add-option
- --webServer,localhost
talos-perf-reftest:
description: "Talos perf-reftest"
suite: talos
- talos-try-name: perf-reftest
+ try-name: perf-reftest
treeherder-symbol: tc-T(p)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1386,17 +1386,17 @@ talos-perf-reftest:
- talos/linux_config.py
- remove_executables.py
extra-options:
- --suite=perf-reftest
talos-svgr:
description: "Talos svgr"
suite: talos
- talos-try-name: svgr
+ try-name: svgr
treeherder-symbol: tc-T(s)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
@@ -1413,17 +1413,17 @@ talos-svgr:
extra-options:
- --suite=svgr
- --add-option
- --webServer,localhost
talos-tp5o:
description: "Talos tp5o"
suite: talos
- talos-try-name: tp5o
+ try-name: tp5o
treeherder-symbol: tc-T(tp)
run-on-projects:
by-test-platform:
linux64-stylo/.*: ['mozilla-central', 'try']
default: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
max-run-time: 3600
e10s: true
mozharness:
--- a/taskcluster/taskgraph/transforms/job/mozharness_test.py
+++ b/taskcluster/taskgraph/transforms/job/mozharness_test.py
@@ -378,35 +378,29 @@ def mozharness_test_on_native_engine(con
@run_job_using('buildbot-bridge', 'mozharness-test', schema=mozharness_test_run_schema)
def mozharness_test_buildbot_bridge(config, job, taskdesc):
test = taskdesc['run']['test']
mozharness = test['mozharness']
worker = taskdesc['worker']
branch = config.params['project']
platform, build_type = test['build-platform'].split('/')
- test_name = test.get('talos-try-name', test['test-name'])
+ test_name = test.get('try-name', test['test-name'])
mozharness = test['mozharness']
# mochitest e10s follows the pattern mochitest-e10s-<suffix>
# in buildbot, except for these special cases
buildbot_specials = [
'mochitest-webgl',
'mochitest-clipboard',
'mochitest-media',
'mochitest-gpu',
'mochitest-e10s',
]
- test_name = test.get(
- 'talos-try-name',
- test.get(
- 'unittest-try-name',
- test['test-name']
- )
- )
+ test_name = test.get('try-name', test['test-name'])
if test['e10s'] and 'e10s' not in test_name:
test_name += '-e10s'
if test_name.startswith('mochitest') \
and test_name.endswith('e10s') \
and not any(map(
lambda name: test_name.startswith(name),
buildbot_specials
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -71,21 +71,19 @@ test_description_schema = Schema({
'description': basestring,
# test suite name, or <suite>/<flavor>
Required('suite'): optionally_keyed_by(
'test-platform',
basestring),
# the name by which this test suite is addressed in try syntax; defaults to
- # the test-name
- Optional('unittest-try-name'): basestring,
-
- # the name by which this talos test is addressed in try syntax
- Optional('talos-try-name'): basestring,
+ # the test-name. This will translate to the `unittest_try_name` or
+ # `talos_try_name` attribute.
+ Optional('try-name'): basestring,
# additional tags to mark up this type of test
Optional('tags'): {basestring: object},
# the symbol, or group(symbol), under which this task should appear in
# treeherder.
'treeherder-symbol': basestring,
@@ -340,16 +338,18 @@ def set_defaults(config, tests):
# the whole point of QuantumRender is to run with WebRender enabled.
# If other *-qr test platforms are added they should also be checked for
# here; currently linux64-qr is the only one.
if test['test-platform'].startswith('linux64-qr'):
test['webrender'] = True
else:
test.setdefault('webrender', False)
+ test.setdefault('try-name', test['test-name'])
+
test.setdefault('os-groups', [])
test.setdefault('chunks', 1)
test.setdefault('run-on-projects', 'built-projects')
test.setdefault('instance-size', 'default')
test.setdefault('max-run-time', 3600)
test.setdefault('reboot', True)
test['mozharness'].setdefault('extra-options', [])
yield test
@@ -538,16 +538,17 @@ def split_e10s(config, tests):
test['e10s'] = False
test['attributes']['e10s'] = False
if e10s == 'both':
yield copy.deepcopy(test)
e10s = True
if e10s:
test['test-name'] += '-e10s'
+ test['try-name'] += '-e10s'
test['e10s'] = True
test['attributes']['e10s'] = True
group, symbol = split_symbol(test['treeherder-symbol'])
if group != '?':
group += '-e10s'
test['treeherder-symbol'] = join_symbol(group, symbol)
if test['suite'] == 'talos':
for i, option in enumerate(test['mozharness']['extra-options']):
@@ -727,21 +728,20 @@ def make_job_description(config, tests):
for test in tests:
label = '{}-{}-{}'.format(config.kind, test['test-platform'], test['test-name'])
if test['chunks'] > 1:
label += '-{}'.format(test['this-chunk'])
build_label = test['build-label']
- if 'talos-try-name' in test:
- try_name = test['talos-try-name']
+ try_name = test['try-name']
+ if test['suite'] == 'talos':
attr_try_name = 'talos_try_name'
else:
- try_name = test.get('unittest-try-name', test['test-name'])
attr_try_name = 'unittest_try_name'
attr_build_platform, attr_build_type = test['build-platform'].split('/', 1)
suite = test['suite']
if '/' in suite:
suite, flavor = suite.split('/', 1)
else: