Bug 1403322 - schedule jsreftests inclusively; r?ahal
This is just one flavor of the "reftets" suite, so we need to add a distinct
scheduling component for it.
MozReview-Commit-ID: AtKuvuUCk1l
--- a/js/moz.build
+++ b/js/moz.build
@@ -8,12 +8,12 @@ with Files("**"):
for header in ('GCAnnotations.h', 'GCAPI.h', 'HeapAPI.h', 'RootingAPI.h', 'SliceBudget.h', 'SweepingAPI.h', 'TraceKind.h', 'TracingAPI.h', 'WeakMapPtr.h', 'GCHashTable.h', 'GCPolicyAPI.h', 'GCVariant.h', 'GCVector.h'):
with Files('public/' + header):
BUG_COMPONENT = component_gc
with Files('public/TrackedOptimizationInfo.h'):
BUG_COMPONENT = component_jit
with Files("src/**"):
- SCHEDULES.inclusive += ['jittest']
+ SCHEDULES.inclusive += ['jittest', 'jsreftest']
with Files("public/**"):
- SCHEDULES.inclusive += ['jittest']
+ SCHEDULES.inclusive += ['jittest', 'jsreftest']
--- a/python/mozbuild/mozbuild/schedules.py
+++ b/python/mozbuild/mozbuild/schedules.py
@@ -10,18 +10,20 @@ skip-unless-schedules optimizations in t
from __future__ import absolute_import, unicode_literals, print_function
# TODO: ideally these lists could be specified in moz.build itself
INCLUSIVE_COMPONENTS = [
'py-lint',
'js-lint',
'yaml-lint',
- # tests that only run when certain files have changed
+ # test suites that only run when certain files have changed
'jittest',
+ # test flavors
+ 'jsreftest',
]
INCLUSIVE_COMPONENTS = sorted(INCLUSIVE_COMPONENTS)
EXCLUSIVE_COMPONENTS = [
# os families
'android',
'linux',
'macosx',
--- a/taskcluster/ci/test/tests.yml
+++ b/taskcluster/ci/test/tests.yml
@@ -343,19 +343,17 @@ jsreftest:
macosx.*:
- unittests/mac_unittest.py
linux.*:
- unittests/linux_unittest.py
- remove_executables.py
extra-options:
- --reftest-suite=jsreftest
when:
- files-changed:
- - js/src/**
- - js/public/**
+ schedules: ['jsreftest']
tier:
by-test-platform:
linux64-qr/.*: 1
windows10-64-asan.*: 3
default: default
marionette:
description: "Marionette unittest run"
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -362,16 +362,19 @@ test_description_schema = Schema({
'test-name': basestring,
# the product name, defaults to firefox
Optional('product'): basestring,
# conditional files to determine when these tests should be run
Optional('when'): Any({
Optional('files-changed'): [basestring],
+
+ # SCHEDULES components; the test suite and platform family will be added automatically.
+ Optional('schedules'): [basestring],
}),
Optional('worker-type'): optionally_keyed_by(
'test-platform',
Any(basestring, None),
),
}, required=True)
@@ -931,20 +934,23 @@ def make_job_description(config, tests):
}
jobdesc['treeherder'] = {
'symbol': test['treeherder-symbol'],
'kind': 'test',
'tier': test['tier'],
'platform': test.get('treeherder-machine-platform', test['build-platform']),
}
- if test.get('when'):
- jobdesc['when'] = test['when']
+ when = test.get('when')
+ if when and 'files-changed' in when:
+ jobdesc['when'] = when
else:
schedules = [suite, platform_family(test['build-platform'])]
+ if when and 'schedules' in when:
+ schedules.extend(when['schedules'])
if config.params['project'] != 'try':
# for non-try branches, include SETA
jobdesc['optimization'] = {'skip-unless-schedules-or-seta': schedules}
else:
# otherwise just use skip-unless-schedules
jobdesc['optimization'] = {'skip-unless-schedules': schedules}
run = jobdesc['run'] = {}