Bug 1403222 - Add test suite families to SCHEDULES.exclusive draft
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Tue, 26 Sep 2017 10:47:22 -0400
changeset 670542 4a06eedec30f1aedae83297d89071389daa7e617
parent 670404 bc56729898954e32d3a3731d03d178ed78924c33
child 733263 ee0f11b807002483349e69c2cac19939af136053
push id81662
push userahalberstadt@mozilla.com
push dateTue, 26 Sep 2017 15:58:24 +0000
bugs1403222
milestone58.0a1
Bug 1403222 - Add test suite families to SCHEDULES.exclusive 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/**"):
@@ -67,25 +69,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']