Bug 1410250 - Stop keying entire 'mozharness' section by-test-platform, r=dustin

Many of the 'test' tasks key the entire 'mozharness' section by-test-platform.
This is bad because:

A) Configuration under 'mozharness' can't be shared across platforms
B) We can't use the 'job-defaults' simplification since merging is naive

Instead of keying the entire 'mozharness' section, this change keys only the
specific configuration that needs it.

MozReview-Commit-ID: EaPlOzsESQ3

--HG--
extra : rebase_source : 12d81013fd4e18403799c92df06f855bf7162a05
This commit is contained in:
Andrew Halberstadt 2017-10-19 14:35:04 -04:00
parent 76166f027f
commit 5b3de4c37c
7 changed files with 230 additions and 489 deletions

View File

@ -1,5 +1,22 @@
job-defaults:
e10s: false
mozharness:
no-read-buildbot-config: true
script:
by-test-platform:
android.*: android_emulator_unittest.py
default: desktop_unittest.py
config:
by-test-platform:
android.*:
- android/androidarm_4_3.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
macosx.*:
- unittests/mac_unittest.py
windows.*:
- unittests/win_taskcluster_unittest.py
cppunit:
description: "CPP Unit Tests"
@ -10,25 +27,6 @@ cppunit:
windows10-64-asan/opt: [] # as an exception to windows.*
linux64-qr/.*: ['mozilla-central', 'try']
default: built-projects
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
default:
script: desktop_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier:
by-test-platform:
windows10-64-asan.*: 3
@ -46,18 +44,6 @@ gtest:
windows.*-nightly/.*: [] # permafails on nightly too
.*-devedition/.*: [] # don't run on devedition
default: built-projects
mozharness:
script: desktop_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier:
by-test-platform:
windows7-32-pgo.*: 3
@ -84,17 +70,6 @@ jittest:
windows.*: false
macosx.*: false
default: true
script: desktop_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier:
by-test-platform:
windows10-64-asan.*: 3

View File

@ -1,5 +1,23 @@
job-defaults:
suite: marionette
mozharness:
no-read-buildbot-config: true
script:
by-test-platform:
android.*: android_emulator_unittest.py
default: marionette.py
config:
by-test-platform:
android.*:
- android/androidarm_4_3.py
macosx.*:
- marionette/prod_config.py
- marionette/mac_taskcluster_config.py
windows.*:
- marionette/windows_taskcluster_config.py
default:
- marionette/prod_config.py
- remove_executables.py
marionette:
description: "Marionette unittest run"
@ -21,28 +39,6 @@ marionette:
by-test-platform:
android.*: 10
default: 1
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
extra-options:
- --test-suite=marionette
default:
script: marionette.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- marionette/windows_taskcluster_config.py
macosx.*:
- marionette/prod_config.py
- marionette/mac_taskcluster_config.py
default:
- marionette/prod_config.py
- remove_executables.py
marionette-headless:
description: "Marionette headless unittest run"
@ -50,18 +46,6 @@ marionette-headless:
max-run-time: 5400
instance-size: default
mozharness:
script: marionette.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- marionette/windows_taskcluster_config.py
macosx.*:
- marionette/prod_config.py
- marionette/mac_taskcluster_config.py
default:
- marionette/prod_config.py
- remove_executables.py
extra-options:
- --headless
tier:

View File

@ -66,26 +66,22 @@ test-verify:
windows10-64-asan.*: 3
default: 2
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
config:
script:
by-test-platform:
android.*: android_emulator_unittest.py
default: desktop_unittest.py
config:
by-test-platform:
android.*:
- android/androidarm_4_3.py
no-read-buildbot-config: true
extra-options:
- --verify
default:
script: desktop_unittest.py
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- remove_executables.py
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
no-read-buildbot-config: true
extra-options:
- --verify
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
macosx.*:
- remove_executables.py
- unittests/mac_unittest.py
windows.*:
- unittests/win_taskcluster_unittest.py
no-read-buildbot-config: true
extra-options:
- --verify

View File

@ -1,3 +1,24 @@
job-defaults:
mozharness:
no-read-buildbot-config: true
script:
by-test-platform:
android.*: android_emulator_unittest.py
default: desktop_unittest.py
config:
by-test-platform:
android-4.2-x86/opt:
- android/androidx86.py
android.*:
- android/androidarm_4_3.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
macosx.*:
- unittests/mac_unittest.py
windows.*:
- unittests/win_taskcluster_unittest.py
mochitest:
description: "Mochitest plain run"
suite:
@ -36,29 +57,16 @@ mochitest:
windows10-64-asan.*: 3
default: default
mozharness:
by-test-platform:
android.*:
mochitest-flavor: plain
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
extra-options:
mochitest-flavor: plain
extra-options:
by-test-platform:
android.*:
- --test-suite=mochitest
default:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
default: []
chunked:
by-test-platform:
android.*: false
default: true
mochitest-a11y:
description: "Mochitest a11y run"
@ -71,19 +79,7 @@ mochitest-a11y:
linux64-qr/.*: ['mozilla-central', 'try']
default: built-projects
mozharness:
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: false
mochitest-flavor: a11y
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier:
by-test-platform:
windows10-64-asan.*: 3
@ -122,18 +118,7 @@ mochitest-browser-chrome:
default: 3600
mozharness:
mochitest-flavor: browser
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
# Bug 1281241: migrating to m3.large instances
instance-size:
by-test-platform:
@ -161,17 +146,6 @@ mochitest-browser-screenshots:
max-run-time: 3600
mozharness:
mochitest-flavor: browser
script: desktop_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
allow-software-gl-layers: false
mochitest-chrome:
@ -191,34 +165,20 @@ mochitest-chrome:
max-run-time: 3600
e10s: false
mozharness:
by-test-platform:
android.*:
mochitest-flavor: chrome
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
android-4.2-x86/opt:
- android/androidx86.py
default:
- android/androidarm_4_3.py
extra-options:
mochitest-flavor: chrome
config:
by-test-platform:
macosx.*:
- remove_executables.py
extra-options:
by-test-platform:
android.*:
- --test-suite=mochitest-chrome
default:
mochitest-flavor: chrome
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- remove_executables.py
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
default: []
chunked:
by-test-platform:
android.*: false
default: true
tier:
by-test-platform:
windows10-64-asan.*: 3
@ -241,32 +201,17 @@ mochitest-clipboard:
windows7-32/debug: both
default: true
mozharness:
by-test-platform:
android.*:
mochitest-flavor: plain
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
extra-options:
mochitest-flavor: plain
config:
by-test-platform:
macosx.*:
- remove_executables.py
extra-options:
by-test-platform:
android.*:
# note that Android runs fewer suites than other platforms
- --test-suite=mochitest-plain-clipboard
default:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: false
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- remove_executables.py
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
extra-options:
default:
- --mochitest-suite=plain-clipboard,chrome-clipboard,browser-chrome-clipboard
mochitest-devtools-chrome:
@ -290,18 +235,7 @@ mochitest-devtools-chrome:
default: true
mozharness:
mochitest-flavor: chrome
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
instance-size:
by-test-platform:
# Bug 1281241: migrating to m3.large instances
@ -325,31 +259,13 @@ mochitest-gpu:
windows7-32/debug: both
default: true
mozharness:
by-test-platform:
android.*:
mochitest-flavor: plain
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
extra-options:
mochitest-flavor: plain
extra-options:
by-test-platform:
android.*:
# note that Android runs fewer suites than other platforms
- --test-suite=mochitest-plain-gpu
default:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: false
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
extra-options:
default:
- --mochitest-suite=plain-gpu,chrome-gpu,browser-chrome-gpu
tier:
by-test-platform:
@ -374,31 +290,13 @@ mochitest-media:
windows10-64.*: 1
default: 3
mozharness:
by-test-platform:
android.*:
mochitest-flavor: plain
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
default:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked:
by-test-platform:
macosx64.*: false
windows10-64.*: false
default: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
mochitest-flavor: plain
chunked:
by-test-platform:
android.*: false
macosx64.*: false
windows10-64.*: false
default: true
tier:
by-test-platform:
linux64-qr/.*: 1
@ -421,18 +319,7 @@ mochitest-plain-headless:
tier: default
mozharness:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
extra-options:
- --headless
@ -451,18 +338,7 @@ mochitest-valgrind:
allow-software-gl-layers: false
mozharness:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
mochitest-webgl:
description: "Mochitest webgl run"
@ -491,27 +367,11 @@ mochitest-webgl:
# Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety
allow-software-gl-layers: false
mozharness:
by-test-platform:
android.*:
mochitest-flavor: plain
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
default:
mochitest-flavor: plain
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
mochitest-flavor: plain
chunked:
by-test-platform:
android.*: false
default: true
tier:
by-test-platform:
linux64-qr/.*: 1

View File

@ -1,3 +1,22 @@
job-defaults:
mozharness:
no-read-buildbot-config: true
script:
by-test-platform:
android.*: android_emulator_unittest.py
default: desktop_unittest.py
config:
by-test-platform:
android.*:
- android/androidarm_4_3.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
macosx.*:
- unittests/mac_unittest.py
windows.*:
- unittests/win_taskcluster_unittest.py
crashtest:
description: "Crashtest run"
suite: reftest/crashtest
@ -15,26 +34,6 @@ crashtest:
by-test-platform:
windows10-64/debug: both
default: true
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
default:
script: desktop_unittest.py
chunked: false
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier:
by-test-platform:
linux64-qr/.*: 1
@ -67,26 +66,6 @@ jsreftest:
by-test-platform:
android.*: 7200
default: 3600
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
default:
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
when:
schedules: ['jsreftest']
tier:
@ -126,30 +105,12 @@ reftest:
android.*: 7200
default: 3600
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
- android/androidarm_4_3.py
default:
script: desktop_unittest.py
no-read-buildbot-config: true
chunked:
by-test-platform:
macosx64/opt: false
windows10-64.*/opt: false
windows10-64.*/debug: true
default: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
chunked:
by-test-platform:
android.*: false
macosx64/opt: false
windows10-64.*/opt: false
default: true
tier:
by-test-platform:
linux64-qr/.*: 1
@ -170,18 +131,7 @@ reftest-gpu:
virtualization: virtual-with-gpu
max-run-time: 3600
mozharness:
script: desktop_unittest.py
no-read-buildbot-config: true
chunked: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier: default
reftest-no-accel:
@ -205,22 +155,11 @@ reftest-no-accel:
windows10-64/debug: both
default: true
mozharness:
script: desktop_unittest.py
no-read-buildbot-config: true
chunked:
by-test-platform:
windows10-64.*/opt: false
macosx.*: false
default: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
tier:
by-test-platform:
windows10-64-asan.*: 3
@ -232,15 +171,3 @@ reftest-stylo:
treeherder-symbol: tc-R(Rs)
virtualization: virtual-with-gpu
chunks: 8
mozharness:
script: desktop_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
default:
- unittests/linux_unittest.py
- remove_executables.py

View File

@ -1,3 +1,29 @@
job-defaults:
mozharness:
no-read-buildbot-config: true
script:
by-test-platform:
android.*: android_emulator_unittest.py
default: desktop_unittest.py
config:
by-test-platform:
android-4.2-x86/opt:
- android/androidx86.py
android.*:
- android/androidarm_4_3.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
macosx.*:
- unittests/mac_unittest.py
windows.*:
- unittests/win_taskcluster_unittest.py
requires-signed-builds:
by-test-platform:
windows10-64-asan/opt: false # No XPCShell on ASAN yet
windows.*: true
default: false
xpcshell:
description: "xpcshell test run"
suite:
@ -25,34 +51,6 @@ xpcshell:
max-run-time: 5400
e10s: false
allow-software-gl-layers: false
mozharness:
by-test-platform:
android.*:
script: android_emulator_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
android-4.2-x86/opt:
- android/androidx86.py
default:
- android/androidarm_4_3.py
default:
script: desktop_unittest.py
no-read-buildbot-config: true
config:
by-test-platform:
windows.*:
- unittests/win_taskcluster_unittest.py
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
requires-signed-builds:
by-test-platform:
windows10-64-asan/opt: false # No XPCShell on ASAN yet
windows.*: true
default: false
tier:
by-test-platform:
windows10-64-asan.*: 3

View File

@ -263,76 +263,76 @@ test_description_schema = Schema({
Any(False, 'always', 'on-exception', 'on-failure'),
# What to run
Required('mozharness'): optionally_keyed_by(
'test-platform', {
# the mozharness script used to run this task
Required('script'): basestring,
Required('mozharness'): {
# the mozharness script used to run this task
Required('script'): optionally_keyed_by(
'test-platform',
basestring),
# the config files required for the task
Required('config'): optionally_keyed_by(
'test-platform',
[basestring]),
# the config files required for the task
Required('config'): optionally_keyed_by(
'test-platform',
[basestring]),
# mochitest flavor for mochitest runs
Optional('mochitest-flavor'): basestring,
# mochitest flavor for mochitest runs
Optional('mochitest-flavor'): basestring,
# any additional actions to pass to the mozharness command
Optional('actions'): [basestring],
# any additional actions to pass to the mozharness command
Optional('actions'): [basestring],
# additional command-line options for mozharness, beyond those
# automatically added
Required('extra-options', default=[]): optionally_keyed_by(
'test-platform',
[basestring]),
# additional command-line options for mozharness, beyond those
# automatically added
Required('extra-options', default=[]): optionally_keyed_by(
'test-platform',
[basestring]),
# the artifact name (including path) to test on the build task; this is
# generally set in a per-kind transformation
Optional('build-artifact-name'): basestring,
# the artifact name (including path) to test on the build task; this is
# generally set in a per-kind transformation
Optional('build-artifact-name'): basestring,
# If true, tooltool downloads will be enabled via relengAPIProxy.
Required('tooltool-downloads', default=False): bool,
# If true, tooltool downloads will be enabled via relengAPIProxy.
Required('tooltool-downloads', default=False): bool,
# This mozharness script also runs in Buildbot and tries to read a
# buildbot config file, so tell it not to do so in TaskCluster
Required('no-read-buildbot-config', default=False): bool,
# This mozharness script also runs in Buildbot and tries to read a
# buildbot config file, so tell it not to do so in TaskCluster
Required('no-read-buildbot-config', default=False): bool,
# Add --blob-upload-branch=<project> mozharness parameter
Optional('include-blob-upload-branch'): bool,
# Add --blob-upload-branch=<project> mozharness parameter
Optional('include-blob-upload-branch'): bool,
# The setting for --download-symbols (if omitted, the option will not
# be passed to mozharness)
Optional('download-symbols'): Any(True, 'ondemand'),
# The setting for --download-symbols (if omitted, the option will not
# be passed to mozharness)
Optional('download-symbols'): Any(True, 'ondemand'),
# If set, then MOZ_NODE_PATH=/usr/local/bin/node is included in the
# environment. This is more than just a helpful path setting -- it
# causes xpcshell tests to start additional servers, and runs
# additional tests.
Required('set-moz-node-path', default=False): bool,
# If set, then MOZ_NODE_PATH=/usr/local/bin/node is included in the
# environment. This is more than just a helpful path setting -- it
# causes xpcshell tests to start additional servers, and runs
# additional tests.
Required('set-moz-node-path', default=False): bool,
# If true, include chunking information in the command even if the number
# of chunks is 1
Required('chunked', default=False): optionally_keyed_by(
'test-platform',
bool),
# If true, include chunking information in the command even if the number
# of chunks is 1
Required('chunked', default=False): optionally_keyed_by(
'test-platform',
bool),
# The chunking argument format to use
Required('chunking-args', default='this-chunk'): Any(
# Use the usual --this-chunk/--total-chunk arguments
'this-chunk',
# Use --test-suite=<suite>-<chunk-suffix>; see chunk-suffix, below
'test-suite-suffix',
),
# The chunking argument format to use
Required('chunking-args', default='this-chunk'): Any(
# Use the usual --this-chunk/--total-chunk arguments
'this-chunk',
# Use --test-suite=<suite>-<chunk-suffix>; see chunk-suffix, below
'test-suite-suffix',
),
# the string to append to the `--test-suite` arugment when
# chunking-args = test-suite-suffix; "<CHUNK>" in this string will
# be replaced with the chunk number.
Optional('chunk-suffix'): basestring,
# the string to append to the `--test-suite` arugment when
# chunking-args = test-suite-suffix; "<CHUNK>" in this string will
# be replaced with the chunk number.
Optional('chunk-suffix'): basestring,
Required('requires-signed-builds', default=False): optionally_keyed_by(
'test-platform',
bool),
}
),
Required('requires-signed-builds', default=False): optionally_keyed_by(
'test-platform',
bool),
},
# The current chunk; this is filled in by `all_kinds.py`
Optional('this-chunk'): int,
@ -616,6 +616,7 @@ def handle_keyed_by(config, tests):
'mozharness.config',
'mozharness.extra-options',
'mozharness.requires-signed-builds',
'mozharness.script',
'worker-type',
]
for test in tests: