Bug 1403222 - Add test suite families to SCHEDULES.exclusive r=dustin
☠☠ backed out by b1588798f186 ☠ ☠
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Tue, 26 Sep 2017 10:47:22 -0400
changeset 384034 ddfc127526b292037d2e3298c65afd15c37ddc91
parent 384033 f787be169098ff06ff653620cc19196082eff05b
child 384035 6d5eaa1fceba24788b1ca4a2af4de542d6aa84cf
push id95697
push userkwierso@gmail.com
push dateMon, 02 Oct 2017 23:23:31 +0000
treeherdermozilla-inbound@a394d9768786 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin
bugs1403222
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1403222 - Add test suite families to SCHEDULES.exclusive r=dustin MozReview-Commit-ID: JWKB7eOgfWc
layout/tools/reftest/moz.build
python/mozbuild/mozbuild/schedules.py
taskcluster/taskgraph/transforms/tests.py
testing/firefox-ui/moz.build
testing/marionette/moz.build
testing/mochitest/moz.build
testing/moz.build
testing/web-platform/moz.build
testing/xpcshell/moz.build
--- a/layout/tools/reftest/moz.build
+++ b/layout/tools/reftest/moz.build
@@ -1,16 +1,17 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 with Files('**'):
     BUG_COMPONENT = ('Testing', 'Reftest')
+    SCHEDULES.exclusive = ['reftest']
 
 XPI_NAME = 'reftest'
 USE_EXTENSION_MANIFEST = True
 JAR_MANIFESTS += ['jar.mn']
 FINAL_TARGET_PP_FILES += ['install.rdf']
 FINAL_TARGET_FILES += ['bootstrap.js']
 
 GENERATED_FILES += ['automation.py']
--- a/python/mozbuild/mozbuild/schedules.py
+++ b/python/mozbuild/mozbuild/schedules.py
@@ -11,16 +11,37 @@ from __future__ import absolute_import, 
 
 # TODO: ideally these lists could be specified in moz.build itself
 
 INCLUSIVE_COMPONENTS = [
     'py-lint',
     'js-lint',
     'yaml-lint',
 ]
+INCLUSIVE_COMPONENTS = sorted(INCLUSIVE_COMPONENTS)
+
 EXCLUSIVE_COMPONENTS = [
     # os families
     'android',
     'linux',
     'macosx',
     'windows',
+    # test suites
+    'awsy',
+    'cppunittest',
+    'firefox-ui',
+    'geckoview',
+    'gtest',
+    'jittest',
+    'marionette',
+    'mochitest',
+    'reftest',
+    'robocop',
+    'talos',
+    'telemetry-tests-client',
+    'xpcshell',
+    'xpcshell-coverage',
+    'web-platform-tests',
+    'web-platform-tests-reftests',
+    'web-platform-tests-wdspec',
 ]
+EXCLUSIVE_COMPONENTS = sorted(EXCLUSIVE_COMPONENTS)
 ALL_COMPONENTS = INCLUSIVE_COMPONENTS + EXCLUSIVE_COMPONENTS
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -934,17 +934,17 @@ def make_job_description(config, tests):
             'kind': 'test',
             'tier': test['tier'],
             'platform': test.get('treeherder-machine-platform', test['build-platform']),
         }
 
         if test.get('when'):
             jobdesc['when'] = test['when']
         else:
-            schedules = [platform_family(test['build-platform'])]
+            schedules = [suite, platform_family(test['build-platform'])]
             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'] = {}
--- a/testing/firefox-ui/moz.build
+++ b/testing/firefox-ui/moz.build
@@ -4,8 +4,9 @@
 
 FIREFOX_UI_FUNCTIONAL_MANIFESTS += ["tests/functional/manifest.ini"]
 FIREFOX_UI_UPDATE_MANIFESTS += ["tests/update/manifest.ini"]
 # TODO: Move to testing/marionette/puppeteer/firefox
 PUPPETEER_FIREFOX_MANIFESTS += ["tests/puppeteer/manifest.ini"]
 
 with Files("**"):
     BUG_COMPONENT = ("Testing", "Firefox UI Tests")
+    SCHEDULES.exclusive = ["firefox-ui"]
--- a/testing/marionette/moz.build
+++ b/testing/marionette/moz.build
@@ -8,8 +8,11 @@ JAR_MANIFESTS += ["jar.mn"]
 JS_PREFERENCE_FILES += ["prefs/marionette.js"]
 
 MARIONETTE_UNIT_MANIFESTS += ["harness/marionette_harness/tests/unit/unit-tests.ini"]
 MARIONETTE_WEBAPI_MANIFESTS += ["harness/marionette_harness/tests/webapi-tests.ini"]
 XPCSHELL_TESTS_MANIFESTS += ["unit.ini"]
 
 with Files("**"):
     BUG_COMPONENT = ("Testing", "Marionette")
+
+with Files("harness/**"):
+    SCHEDULES.exclusive = ["marionette", "firefox-ui"]
--- a/testing/mochitest/moz.build
+++ b/testing/mochitest/moz.build
@@ -160,16 +160,17 @@ TEST_HARNESS_FILES.testing.mochitest.ice
 
 TEST_HARNESS_FILES.testing.mochitest.websocketprocessbridge += [
     '/testing/tools/websocketprocessbridge/websocketprocessbridge.py',
     '/testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt',
 ]
 
 with Files("**"):
     BUG_COMPONENT = ("Testing", "Mochitest")
+    SCHEDULES.exclusive = ['mochitest', 'robocop']
 
 with Files("*remote*"):
     BUG_COMPONENT = ("Firefox for Android", "Testing")
 
 with Files("chrome/**"):
     BUG_COMPONENT = ("Testing", "Mochitest Chrome")
 
 with Files("chrome-harness.js"):
--- a/testing/moz.build
+++ b/testing/moz.build
@@ -1,10 +1,11 @@
 with Files("awsy/**"):
     BUG_COMPONENT = ("Testing", "AWSY")
+    SCHEDULES.exclusive = ["awsy"]
 
 with Files("config/**"):
     BUG_COMPONENT = ("Testing", "General")
 
 with Files("*.py"):
     BUG_COMPONENT = ("Testing", "General")
 
 with Files("moz.build"):
@@ -13,16 +14,17 @@ with Files("moz.build"):
 with Files("*.mk"):
     BUG_COMPONENT = ("Testing", "General")
 
 with Files("README.txt"):
     BUG_COMPONENT = ("Testing", "General")
 
 with Files("talos/**"):
     BUG_COMPONENT = ("Testing", "Talos")
+    SCHEDULES.exclusive = ['talos']
 
 with Files("talos/talos/tests/v8_7/**"):
     BUG_COMPONENT = ("Core", "Javascript Engine")
 
 with Files("talos/talos/tests/kraken/**"):
     BUG_COMPONENT = ("Core", "Javascript Engine")
 
 with Files("talos/talos/tests/a11y/**"):
@@ -70,25 +72,28 @@ with Files("tps/**"):
 with Files("mozharness/**"):
     BUG_COMPONENT = ("Release Engineering", "Mozharness")
 
 with Files("config/tooltool-manifests/**"):
     BUG_COMPONENT = ("Release Engineering", "Mozharness")
 
 with Files("*cppunittest*"):
     BUG_COMPONENT = ("Testing", "General")
+    SCHEDULES.exclusive = ['cppunittest']
 
 with Files("gtest/**"):
     BUG_COMPONENT = ("Testing", "General")
+    SCHEDULES.exclusive = ['gtest']
 
 with Files("specialpowers/**"):
     BUG_COMPONENT = ("Testing", "Mochitest")
 
 with Files("crashtest/**"):
     BUG_COMPONENT = ("Testing", "Reftest")
+    SCHEDULES.exclusive = ['reftest']
 
 with Files("config/marionette*"):
     BUG_COMPONENT = ("Testing", "Marionette")
 
 with Files("config/mozbase_requirements.txt"):
     BUG_COMPONENT = ("Testing", "Mozbase")
 
 with Files("config/firefox_ui_requirements.txt"):
--- a/testing/web-platform/moz.build
+++ b/testing/web-platform/moz.build
@@ -18,16 +18,23 @@ TEST_HARNESS_FILES['web-platform'] += [
 ]
 
 TEST_HARNESS_FILES['web-platform'].certs = [
     'certs/cacert.pem',
     'certs/web-platform.test.key',
     'certs/web-platform.test.pem',
 ]
 
+with Files("**"):
+    SCHEDULES.exclusive = [
+        'web-platform-tests',
+        'web-platform-tests-reftests',
+        'web-platform-tests-wdspec',
+    ]
+
 with Files("update/**"):
     BUG_COMPONENT = ("Testing", "web-platform-tests")
 
 with Files("certs/**"):
     BUG_COMPONENT = ("Testing", "web-platform-tests")
 
 with Files("mach*"):
     BUG_COMPONENT = ("Testing", "web-platform-tests")
--- a/testing/xpcshell/moz.build
+++ b/testing/xpcshell/moz.build
@@ -10,9 +10,10 @@ PYTHON_UNITTEST_MANIFESTS += [
     'python.ini',
 ]
 
 TESTING_JS_MODULES += [
     'dbg-actors.js',
 ]
 
 with Files("**"):
-    BUG_COMPONENT = ("Testing", "XPCShell Harness")
\ No newline at end of file
+    BUG_COMPONENT = ("Testing", "XPCShell Harness")
+    SCHEDULES.exclusive = ['xpcshell', 'xpcshell-coverage']