Bug 1171033 - Add taskcluster linux64 test configs (but not scheduled anywhere yet), r=dustin

This adds test configs for desktop linux64 unittests, including: mochitest-plain,
mochitest-browser-chrome, mochitest-devtools-chrome, reftest and xpcshell. It
also does a minor refactor of the b2g configs to remove some b2g-specific logic
from the base 'test.yml' config.

This does *not* schedule these tests anywhere just yet.
This commit is contained in:
Andrew Halberstadt 2015-10-15 15:35:45 -04:00
parent 4cc692ee3a
commit e3525d4118
42 changed files with 242 additions and 55 deletions

View File

@ -0,0 +1,6 @@
config = {
# We bake this directly into the tester image now...
"download_minidump_stackwalk": False,
"minidump_stackwalk_path": "/usr/local/bin/linux64-minidump_stackwalk",
"exes": {}
}

View File

@ -543,20 +543,28 @@ class Graph(object):
if mozharness_url:
test_parameters['mozharness_url'] = mozharness_url
test_definition = templates.load(test['task'], {})['task']
chunk_config = test_definition['extra']['chunks']
chunk_config = test_definition['extra'].get('chunks', {})
# Allow branch configs to override task level chunking...
if 'chunks' in test:
chunk_config['total'] = test['chunks']
test_parameters['total_chunks'] = chunk_config['total']
chunked = 'total' in chunk_config
if chunked:
test_parameters['total_chunks'] = chunk_config['total']
for chunk in range(1, chunk_config['total'] + 1):
if 'only_chunks' in test and \
if 'suite' in test_definition['extra']:
suite_config = test_definition['extra']['suite']
test_parameters['suite'] = suite_config['name']
test_parameters['flavor'] = suite_config.get('flavor', '')
for chunk in range(1, chunk_config.get('total', 1) + 1):
if 'only_chunks' in test and chunked and \
chunk not in test['only_chunks']:
continue
test_parameters['chunk'] = chunk
if chunked:
test_parameters['chunk'] = chunk
test_task = configure_dependent_task(test['task'],
test_parameters,
slugid(),

View File

@ -78,13 +78,9 @@ fi
# support multiple, space delimited, config files
config_cmds=""
for cfg in $MOZHARNESS_CONFIG; do
config_cmds="${config_cmds} --config ${cfg}"
config_cmds="${config_cmds} --config-file ${cfg}"
done
# TODO: this config should be folded into others once we are no longer
# also running tests in Buildbot
config_cmds="${config_cmds} --config-file remove_executables.py"
# run the given mozharness script and configs, but pass the rest of the
# arguments in from our own invocation
python2.7 $WORKSPACE/${MOZHARNESS_SCRIPT} ${config_cmds} "${@}"

View File

@ -2,3 +2,8 @@ $inherits:
from: 'tasks/build.yml'
variables:
build_product: 'firefox'
task:
extra:
locations:
mozharness: 'public/build/mozharness.zip'
test_packages: 'public/build/test_packages.json'

View File

@ -44,4 +44,3 @@ task:
# files are located, relative to the task's artifacts URL
locations:
build: 'public/build/target.tar.bz2'
tests: 'public/build/target.tests.zip'

View File

@ -15,27 +15,11 @@ task:
- 'docker-worker:image:{{#docker_image}}tester{{/docker_image}}'
- 'queue:define-task:aws-provisioner-v1/test-c4-2xlarge'
- 'queue:create-task:aws-provisioner-v1/test-c4-2xlarge'
- 'docker-worker:cache:tc-vcs'
- 'docker-worker:cache:linux-cache'
- 'docker-worker:capability:device:loopbackVideo'
- 'docker-worker:capability:device:loopbackAudio'
payload:
capabilities:
devices:
loopbackVideo: true
loopbackAudio: true
image: '{{#docker_image}}tester{{/docker_image}}'
maxRunTime: 3600
cache:
# So pip installs are cached...
linux-cache: /home/worker/.cache
tc-vcs: '/home/worker/.tc-vcs'
env:
GAIA_HEAD_REPOSITORY: '{{{gaia_head_repository}}}'
GAIA_BASE_REPOSITORY: '{{{gaia_base_repository}}}'
GAIA_REF: '{{{gaia_ref}}}'
GAIA_REV: '{{{gaia_rev}}}'
MOZILLA_BUILD_URL: '{{build_url}}'
MOZHARNESS_URL: '{{mozharness_url}}'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia Build Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia Build Unit Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] CPP Unit Tests'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Crashtest'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] JSReftest'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Marionette Framework Unit Tests'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Marionette WebAPI Tests'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mochitest'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mochitest'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Reftest'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] XPCShell'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] XPCShell'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia JS Integration Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Gaia Unit Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Gaia Unit Test OOP'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia Linter'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] B2G Mochitests {{chunk}}'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mochitest OOP'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Reftest'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Reftest Sanity OOP'

View File

@ -0,0 +1,23 @@
---
$inherits:
from: 'tasks/test.yml'
task:
scopes:
- 'docker-worker:cache:tc-vcs'
- 'docker-worker:cache:linux-cache'
- 'docker-worker:capability:device:loopbackVideo'
- 'docker-worker:capability:device:loopbackAudio'
payload:
cache:
# So pip installs are cached...
linux-cache: /home/worker/.cache
tc-vcs: '/home/worker/.tc-vcs'
capabilities:
devices:
loopbackVideo: true
loopbackAudio: true
env:
GAIA_HEAD_REPOSITORY: '{{{gaia_head_repository}}}'
GAIA_BASE_REPOSITORY: '{{{gaia_base_repository}}}'
GAIA_REF: '{{{gaia_ref}}}'
GAIA_REV: '{{{gaia_rev}}}'

View File

@ -0,0 +1,26 @@
---
$inherits:
from: 'tasks/tests/fx_unittest_base.yml'
task:
scopes:
- 'docker-worker:capability:device:loopbackVideo'
- 'docker-worker:capability:device:loopbackAudio'
metadata:
name: '[TC] Linux64 mochitest-browser-chrome M(bc{{chunk}})'
description: Mochitest browser-chrome run {{chunk}}
payload:
capabilities:
devices:
loopbackVideo: true
loopbackAudio: true
extra:
chunks:
total: 7
suite:
name: mochitest
flavor: browser-chrome-chunked
treeherder:
groupName: Desktop mochitests
groupSymbol: tc-M
symbol: bc{{chunk}}

View File

@ -0,0 +1,25 @@
---
$inherits:
from: 'tasks/tests/fx_unittest_base.yml'
task:
scopes:
- 'docker-worker:capability:device:loopbackVideo'
- 'docker-worker:capability:device:loopbackAudio'
metadata:
name: '[TC] Linux64 mochitest-devtools-chrome M(dt{{chunk}})'
description: Mochitest devtools-chrome run {{chunk}}
payload:
capabilities:
devices:
loopbackVideo: true
loopbackAudio: true
extra:
chunks:
total: 2
suite:
name: mochitest
flavor: mochitest-devtools-chrome
treeherder:
groupName: Desktop mochitests
groupSymbol: tc-M
symbol: dt{{chunk}}

View File

@ -0,0 +1,22 @@
$inherits:
from: 'tasks/tests/fx_unittest_base.yml'
task:
scopes:
- 'docker-worker:capability:device:loopbackVideo'
- 'docker-worker:capability:device:loopbackAudio'
metadata:
name: '[TC] Linux64 mochitest-gl M(gl)'
description: Mochitest webgl run
payload:
capabilities:
devices:
loopbackVideo: true
loopbackAudio: true
extra:
suite:
name: mochitest
flavor: mochitest-gl
treeherder:
groupName: Desktop mochitests
groupSymbol: tc-M
symbol: gl

View File

@ -0,0 +1,25 @@
---
$inherits:
from: 'tasks/tests/fx_unittest_base.yml'
task:
scopes:
- 'docker-worker:capability:device:loopbackVideo'
- 'docker-worker:capability:device:loopbackAudio'
metadata:
name: '[TC] Linux64 mochitest-plain {{chunk}}'
description: Mochitest plain run {{chunk}}
payload:
capabilities:
devices:
loopbackVideo: true
loopbackAudio: true
extra:
chunks:
total: 5
suite:
name: mochitest
flavor: plain-chunked
treeherder:
groupName: Desktop mochitests
groupSymbol: tc-M
symbol: {{chunk}}

View File

@ -0,0 +1,17 @@
---
$inherits:
from: 'tasks/tests/fx_unittest_base.yml'
task:
metadata:
name: '[TC] Linux64 reftest {{chunk}}'
description: Reftest run {{chunk}}
extra:
chunks:
total: 4
suite:
name: reftest
flavor: reftest
treeherder:
groupName: Desktop reftest
groupSymbol: tc-R
symbol: {{chunk}}

View File

@ -0,0 +1,17 @@
---
$inherits:
from: 'tasks/tests/fx_unittest_base.yml'
task:
metadata:
name: '[TC] Linux64 xpcshell {{chunk}}'
description: XPCShell run {{chunk}}
extra:
chunks:
total: 2
suite:
name: xpcshell
flavor: xpcshell
treeherder:
groupName: Desktop xpcshell tests
groupSymbol: tc-X
symbol: {{chunk}}

View File

@ -0,0 +1,34 @@
---
$inherits:
from: 'tasks/test.yml'
task:
payload:
image: '{{#docker_image}}desktop-test{{/docker_image}}'
command:
- bash
- /home/worker/bin/test.sh
- --no-read-buildbot-config
- --installer-url={{build_url}}
- --test-packages-url={{test_packages_url}}
- --download-symbols=ondemand
- --{{suite}}-suite={{flavor}}
- --total-chunk={{total_chunks}}
- --this-chunk={{chunk}}
env:
GECKO_HEAD_REPOSITORY: '{{{head_repository}}}'
GECKO_HEAD_REV: '{{{head_rev}}}'
MOZHARNESS_SCRIPT: 'mozharness/scripts/desktop_unittest.py'
# TODO move linux_unittest.py to a platform specific config
MOZHARNESS_CONFIG: >
mozharness/configs/unittests/linux_unittest.py
mozharness/configs/remove_executables.py
artifacts:
'public/build':
type: directory
path: '/home/worker/artifacts/'
expires: '{{#from_now}}1 year{{/from_now}}'
extra:
treeherderEnv:
- production
- staging

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia Build Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia Build Unit Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mulet Gaia JS Integration Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mulet Gaia Unit Test'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mulet Gaia Unit Test OOP'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] - Gaia Linter'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Mulet Mochitests ( {{chunk}} )'

View File

@ -1,6 +1,6 @@
---
$inherits:
from: 'tasks/test.yml'
from: 'tasks/tests/b2g_unittest_base.yml'
task:
metadata:
name: '[TC] Reftest'