Bug 1330310: Switch macosx tests to buildbot-bridge. r=catlee,dustin
authorWander Lairson Costa <wcosta@mozilla.com>
Mon, 27 Feb 2017 09:52:22 -0300
changeset 379235 8121f087abc42046a30c839ff52625e47a82d88b
parent 379234 54778f0ce12ead659bb4b2b1fb11dcd7d0c10c43
child 379236 313bfccbbd9f393617e423208d3777b6468f56b1
push id38
push userfmarier@mozilla.com
push dateThu, 23 Mar 2017 21:01:33 +0000
reviewerscatlee, dustin
bugs1330310
milestone54.0a1
Bug 1330310: Switch macosx tests to buildbot-bridge. r=catlee,dustin We use buildbot-bridge to schedule macosx tests in buildbot, and disable scheduling on buildbot. Also, schedule a subset of unittests in taskcluster-worker Tier 3 machines. MozReview-Commit-ID: Dbn6U4V2NLp
taskcluster/ci/test/test-platforms.yml
taskcluster/ci/test/test-sets.yml
taskcluster/ci/test/tests.yml
taskcluster/taskgraph/transforms/job/mozharness_test.py
taskcluster/taskgraph/transforms/tests.py
testing/mozharness/configs/builds/releng_base_mac_64_builds.py
testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
--- a/taskcluster/ci/test/test-platforms.yml
+++ b/taskcluster/ci/test/test-platforms.yml
@@ -139,21 +139,22 @@ windows10-64-vm/opt:
 
 ##
 # MacOS X platforms (matching /macosx.*/)
 
 macosx64/debug:
     build-platform: macosx64/debug
     test-sets:
         - macosx64-tests-debug
-# Disable bbb talos tests for mac until we disable bb scheduling
+
 # macosx64/opt:
 #     build-platform: macosx64/opt
 #     test-sets:
 #         - macosx64-tests-talos
+#         - macosx64-tests-debug
 
 ##
 # Android platforms (matching /android.*/)
 
 android-4.3-arm7-api-15/debug:
     build-platform: android-api-15/debug
     test-sets:
         - android-common-tests
--- a/taskcluster/ci/test/test-sets.yml
+++ b/taskcluster/ci/test/test-sets.yml
@@ -129,33 +129,36 @@ windows-vm-tests:
 #    - mochitest-a11y
 #    - mochitest-chrome
 #    - mochitest-clipboard
 #    - mochitest-gpu
 
 macosx64-tests-debug:
     - cppunit
     - crashtest
-    # - gtest
+    - external-media-tests-base
+    - external-media-tests-youtube
+    - gtest
+    - jittest
     - jsreftest
-    # - marionette
-    # - mochitest
-    # - mochitest-a11y
-    # - mochitest-browser-chrome
-    # - mochitest-chrome
-    # - mochitest-clipboard
-    # - mochitest-devtools-chrome
-    # - mochitest-gpu
-    # - mochitest-jetpack
-    # - mochitest-media
+    - marionette
+    - mochitest
+    - mochitest-a11y
+    - mochitest-browser-chrome
+    - mochitest-chrome
+    - mochitest-clipboard
+    - mochitest-devtools-chrome
+    - mochitest-gpu
+    - mochitest-jetpack
+    - mochitest-media
     - mochitest-webgl
-    # - reftest
-    # - web-platform-tests
-    # - web-platform-tests-reftests
-    # - xpcshell
+    - reftest
+    - web-platform-tests
+    - web-platform-tests-reftests
+    - xpcshell
 
 macosx64-tests-talos:
     - talos-chrome
     - talos-dromaeojs
     - talos-g1
     - talos-g2
     - talos-g4
     - talos-other
--- a/taskcluster/ci/test/tests.yml
+++ b/taskcluster/ci/test/tests.yml
@@ -58,29 +58,30 @@ crashtest:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 10
             android.*: 4
             default: 1
     e10s:
         by-test-platform:
             windows.*: false # Bug 1304435
             linux64-ccov/opt: false
+            macosx64/debug: true
             default: both
     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=crashtest
             default:
                 script: desktop_unittest.py
-                chunked: true
+                chunked: false
                 no-read-buildbot-config: true
                 config:
                     by-test-platform:
                         windows.*:
                             - unittests/win_taskcluster_unittest.py
                         macosx.*:
                             - remove_executables.py
                             - unittests/mac_unittest.py
@@ -88,16 +89,17 @@ crashtest:
                             - unittests/linux_unittest.py
                             - remove_executables.py
                 extra-options:
                     - --reftest-suite=crashtest
 
 external-media-tests-base:
     description: "External Media Test run"
     suite: external-media-tests
+    unittest-try-name: 'media-tests'
     treeherder-symbol: tc-VP(b-m)
     e10s: false
     tier: 2
     max-run-time: 5400
     docker-image: {"in-tree": "desktop1604-test"}
     run-on-projects:
         by-test-platform:
             windows.*: ['mozilla-central', 'try']
@@ -111,16 +113,17 @@ external-media-tests-base:
                 default:
                     - mediatests/taskcluster_posix_config.py
                     - remove_executables.py
 
 external-media-tests-twitch:
     description: "External Media Test Twitch run"
     suite: external-media-tests/twitch
     treeherder-symbol: tc-VP(b-t)
+    unittest-try-name: media-twitch-tests
     e10s: false
     tier: 2
     max-run-time: 5400
     docker-image: {"in-tree": "desktop1604-test"}
     run-on-projects:
         by-test-platform:
             windows.*: ['mozilla-central', 'try']
             default: ['all']
@@ -134,16 +137,17 @@ external-media-tests-twitch:
                     - mediatests/taskcluster_posix_config.py
                     - remove_executables.py
         extra-options:
             - "--suite=media-twitch-tests"
 
 external-media-tests-youtube:
     description: "External Media Test Youtube run"
     suite: external-media-tests/youtube
+    unittest-try-name: media-youtube-tests
     treeherder-symbol: tc-VP(b-y)
     e10s: false
     tier: 2
     max-run-time: 5400
     docker-image: {"in-tree": "desktop1604-test"}
     run-on-projects:
         by-test-platform:
             windows.*: ['mozilla-central', 'try']
@@ -227,18 +231,24 @@ jittest:
     docker-image: {"in-tree": "desktop1604-test"}
     run-on-projects:
         by-test-platform:
             linux64-qr/.*: ['graphics']
             default: ['all']
     chunks:
         by-test-platform:
             windows.*: 1
+            macosx.*: 1
             default: 6
     mozharness:
+        chunked:
+          by-test-platform:
+            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.*:
                     - remove_executables.py
@@ -259,16 +269,17 @@ jsreftest:
             android.*: xlarge
             default: default
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 35
             android.*: 10
             windows.*: 2
             linux64-qr/.*: 4
+            macosx.*: 2
             default: 3
     e10s:
         by-test-platform:
             # Bug 1321782
             windows.*: false
             android.*: false
             linux64-ccov/opt: false
             default: both
@@ -288,16 +299,17 @@ jsreftest:
                 no-read-buildbot-config: true
                 config:
                     - android/androidarm_4_3.py
                 extra-options:
                     - --test-suite=jsreftest
             default:
                 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.*:
@@ -326,16 +338,17 @@ marionette:
             default: default
     chunks:
         by-test-platform:
             android.*: 10
             default: 1
     e10s:
         by-test-platform:
             linux64-ccov/opt: false
+            macosx.*: true
             default: both
     mozharness:
         by-test-platform:
             android.*:
                 script: android_emulator_unittest.py
                 no-read-buildbot-config: true
                 config:
                     - android/androidarm_4_3.py
@@ -374,16 +387,17 @@ mochitest:
             macosx.*: 5
             windows.*: 5
             linux.*: 10
     e10s:
         by-test-platform:
             linux64-ccov/opt: false
             linux64-jsdcov/opt: false
             android.*: false
+            macosx64/debug: true
             default: both
     max-run-time:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 10800
             linux64-jsdcov/opt: 10800
             default: 5400
     allow-software-gl-layers: false
     mozharness:
@@ -425,17 +439,17 @@ mochitest-a11y:
     docker-image: {"in-tree": "desktop1604-test"}
     run-on-projects:
         by-test-platform:
             linux64-qr/.*: ['graphics']
             default: ['all']
     mozharness:
         script: desktop_unittest.py
         no-read-buildbot-config: true
-        chunked: true
+        chunked: false
         config:
             by-test-platform:
                 windows.*:
                     - unittests/win_taskcluster_unittest.py
                 macosx.*:
                     - remove_executables.py
                     - unittests/mac_unittest.py
                 linux.*:
@@ -458,27 +472,29 @@ mochitest-browser-chrome:
             linux64/debug: 12
             linux32/debug: 12
             linux64-asan/opt: 10
             default: 7
     e10s:
         by-test-platform:
             linux64-jsdcov/opt: false
             linux64-ccov/opt: false
+            macosx64/debug: true
             default: both
     max-run-time:
         by-test-platform:
             linux64-jsdcov/opt: 7200
             linux64-ccov/opt: 7200
             linux64/debug: 5400
             linux32/debug: 5400
             default: 3600
     mozharness:
         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.*:
@@ -535,17 +551,16 @@ mochitest-chrome:
     instance-size:
         by-test-platform:
             android.*: xlarge
             default: default
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 4
             android.*: 2
-            macosx.*: 1
             default: 3
     max-run-time: 3600
     e10s: false
     mozharness:
         by-test-platform:
             android.*:
                 script: android_emulator_unittest.py
                 no-read-buildbot-config: true
@@ -555,16 +570,17 @@ mochitest-chrome:
                             - android/androidx86.py
                         default:
                             - android/androidarm_4_3.py
                 extra-options:
                     - --test-suite=mochitest-chrome
             default:
                 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.*:
@@ -574,30 +590,34 @@ mochitest-chrome:
                     - --mochitest-suite=chrome
 
 mochitest-clipboard:
     description: "Mochitest clipboard run"
     suite: mochitest/clipboard
     treeherder-symbol: tc-M(cl)
     loopback-video: true
     instance-size: xlarge
+    e10s:
+      by-test-platform:
+        macosx64/debug: true
+        default: both
     mozharness:
         by-test-platform:
             android.*:
                 script: android_emulator_unittest.py
                 no-read-buildbot-config: true
                 config:
                     - android/androidarm_4_3.py
                 extra-options:
                     # note that Android runs fewer suites than other platforms
                     - --test-suite=mochitest-plain-clipboard
             default:
                 script: desktop_unittest.py
                 no-read-buildbot-config: true
-                chunked: true
+                chunked: false
                 config:
                     by-test-platform:
                         windows.*:
                             - unittests/win_taskcluster_unittest.py
                         macosx.*:
                             - remove_executables.py
                             - unittests/mac_unittest.py
                         linux.*:
@@ -613,31 +633,34 @@ mochitest-devtools-chrome:
             linux64-jsdcov/opt: mochitest/mochitest-devtools-chrome-coverage
             default: mochitest/mochitest-devtools-chrome-chunked
     treeherder-symbol: tc-M(dt)
     loopback-video: true
     max-run-time: 5400
     chunks:
         by-test-platform:
             windows.*: 8
+            macosx.*: 8
             default: 10
     run-on-projects:
         by-test-platform:
             windows.*: ['mozilla-central', 'try']
             default: ['all']
     e10s:
         by-test-platform:
             linux64-ccov/opt: false
             linux64-jsdcov/opt: false
             # Bug 1304433: mochitest-devtools-chrome (e10s) not greened on windows
             windows.*: false
+            macosx64/debug: true
             default: both
     mozharness:
         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.*:
@@ -666,31 +689,32 @@ mochitest-gpu:
     run-on-projects:
         by-test-platform:
             linux64-qr/.*: ['graphics']
             default: ['all']
     e10s:
         by-test-platform:
             windows.*: both
             android.*: false
+            macosx64/opt: both
             default: true
     mozharness:
         by-test-platform:
             android.*:
                 script: android_emulator_unittest.py
                 no-read-buildbot-config: true
                 config:
                     - android/androidarm_4_3.py
                 extra-options:
                     # note that Android runs fewer suites than other platforms
                     - --test-suite=mochitest-plain-gpu
             default:
                 script: desktop_unittest.py
                 no-read-buildbot-config: true
-                chunked: true
+                chunked: false
                 config:
                     by-test-platform:
                         windows.*:
                             - unittests/win_taskcluster_unittest.py
                         macosx.*:
                             - remove_executables.py
                             - unittests/mac_unittest.py
                         linux.*:
@@ -709,17 +733,17 @@ mochitest-jetpack:
     docker-image: {"in-tree": "desktop1604-test"}
     run-on-projects:
         by-test-platform:
             windows.*: ['mozilla-central', 'try']
             default: ['all']
     mozharness:
         script: desktop_unittest.py
         no-read-buildbot-config: true
-        chunked: true
+        chunked: false
         config:
             by-test-platform:
                 windows.*:
                     - unittests/win_taskcluster_unittest.py
                 macosx.*:
                     - remove_executables.py
                     - unittests/mac_unittest.py
                 linux.*:
@@ -730,38 +754,46 @@ mochitest-jetpack:
             - --mochitest-suite=jetpack-addon
 
 mochitest-media:
     description: "Mochitest media run"
     suite: mochitest/mochitest-media
     treeherder-symbol: tc-M(mda)
     max-run-time: 5400
     loopback-video: true
+    e10s:
+      by-test-platform:
+        macosx64/debug: true
+        default: both
     instance-size:
         by-test-platform:
             android.*: xlarge
             default: large
     chunks:
         by-test-platform:
             android.*: 3
+            macosx64.*: 1
             default: 3
     docker-image: {"in-tree": "desktop1604-test"}
     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=mochitest-media
             default:
                 script: desktop_unittest.py
                 no-read-buildbot-config: true
-                chunked: true
+                chunked:
+                  by-test-platform:
+                    macosx64.*: false
+                    default: true
                 config:
                     by-test-platform:
                         windows.*:
                             - unittests/win_taskcluster_unittest.py
                         macosx.*:
                             - remove_executables.py
                             - unittests/mac_unittest.py
                         linux.*:
@@ -800,16 +832,20 @@ mochitest-webgl:
     description: "Mochitest webgl run"
     suite: mochitest/mochitest-gl
     treeherder-symbol: tc-M(gl)
     docker-image: {"in-tree": "desktop1604-test"}
     chunks:
         by-test-platform:
             android.*: 10
             default: 3
+    e10s:
+      by-test-platform:
+        macosx64/opt: false
+        default: both
     loopback-video: true
     max-run-time:
         by-test-platform:
             android.*: 7200
             default: 3600
     instance-size:
         by-test-platform:
             android.*: xlarge
@@ -871,17 +907,18 @@ reftest:
     instance-size:
         by-test-platform:
             android.*: xlarge
             default: default
     chunks:
         by-test-platform:
             android-4.3-arm7-api-15/debug: 48
             android.*: 16
-            macosx.*: 1
+            macosx64/opt: 1
+            macosx64/debug: 2
             default: 8
     max-run-time:
         by-test-platform:
             android.*: 10800
             default: 3600
     e10s:
         by-test-platform:
             linux64-ccov/opt: false
@@ -893,16 +930,20 @@ reftest:
                 no-read-buildbot-config: true
                 config:
                     - android/androidarm_4_3.py
                 extra-options:
                     - --test-suite=reftest
             default:
                 script: desktop_unittest.py
                 no-read-buildbot-config: true
+                chunked:
+                  by-test-platform:
+                    macosx64/opt: false
+                    default: true
                 config:
                     by-test-platform:
                         windows.*:
                             - unittests/win_taskcluster_unittest.py
                         macosx.*:
                             - remove_executables.py
                             - unittests/mac_unittest.py
                         linux.*:
@@ -1149,36 +1190,39 @@ talos-tp5o:
                     - talos/linux_config.py
                     - remove_executables.py
         extra-options:
             - --suite=tp5o
 
 web-platform-tests:
     description: "Web platform test run"
     suite: web-platform-tests
-    treeherder-symbol: tc-W()
+    treeherder-symbol: tc-W(wpt)
     chunks:
       by-test-platform:
-        macosx.*: 5
+        macosx64/opt: 5
+        macosx64/debug: 10
         default: 12
     e10s:
         by-test-platform:
             linux64-ccov/opt: false
+            macosx.*: true
             default: both
     max-run-time: 7200
     instance-size: xlarge
     docker-image: {"in-tree": "desktop1604-test"}
     checkout: true
     run-on-projects:
         by-test-platform:
             windows.*: ['mozilla-central', 'try']
             default: ['all']
     mozharness:
         script: web_platform_tests.py
         no-read-buildbot-config: true
+        chunked: true
         config:
             by-test-platform:
                 windows.*:
                     - web_platform_tests/prod_config_windows_taskcluster.py
                 default:
                     - web_platform_tests/prod_config.py
                     - remove_executables.py
         extra-options:
@@ -1236,17 +1280,17 @@ web-platform-tests-wdspec:
             - --test-type=wdspec
 
 xpcshell:
     description: "xpcshell test run"
     suite:
         by-test-platform:
             linux64-jsdcov/opt: xpcshell-coverage
             default: xpcshell
-    treeherder-symbol: tc-X()
+    treeherder-symbol: tc-X(X)
     run-on-projects:
         by-test-platform:
             linux64-qr/.*: ['graphics']
             default: ['all']
     chunks:
         by-test-platform:
             linux64/debug: 10
             android-4.2-x86/opt: 6
--- a/taskcluster/taskgraph/transforms/job/mozharness_test.py
+++ b/taskcluster/taskgraph/transforms/job/mozharness_test.py
@@ -337,19 +337,51 @@ def mozharness_test_buildbot_bridge(conf
     mozharness = test['mozharness']
     worker = taskdesc['worker']
 
     branch = config.params['project']
     platform, build_type = test['build-platform'].split('/')
     test_name = test.get('talos-try-name', test['test-name'])
     mozharness = test['mozharness']
 
-    if test['e10s'] and not test_name.endswith('-e10s'):
+    # mochitest e10s follows the pattern mochitest-e10s-<suffix>
+    # in buildbot, except for these special cases
+    buildbot_specials = [
+        'mochitest-webgl',
+        'mochitest-clipboard',
+        'mochitest-media',
+        'mochitest-gpu',
+        'mochitest-e10s',
+    ]
+    test_name = test.get(
+                    'talos-try-name',
+                    test.get(
+                        'unittest-try-name',
+                        test['test-name']
+                    )
+                )
+    if test['e10s'] and 'e10s' not in test_name:
         test_name += '-e10s'
 
+    if test_name.startswith('mochitest') \
+            and test_name.endswith('e10s') \
+            and not any(map(
+                lambda name: test_name.startswith(name),
+                buildbot_specials
+            )):
+        split_mochitest = test_name.split('-')
+        test_name = '-'.join([
+            split_mochitest[0],
+            split_mochitest[-1],
+            '-'.join(split_mochitest[1:-1])
+        ])
+
+    # in buildbot, mochitest-webgl is called mochitest-gl
+    test_name = test_name.replace('webgl', 'gl')
+
     if mozharness.get('chunked', False):
         this_chunk = test.get('this-chunk')
         test_name = '{}-{}'.format(test_name, this_chunk)
 
     if test.get('suite', '') == 'talos':
         # on linux64-<variant>/<build>, we add the variant to the buildername
         m = re.match(r'\w+-([^/]+)/.*', test['test-platform'])
         variant = ''
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -174,17 +174,17 @@ test_description_schema = Schema({
 
     # the exit status code that indicates the task should be retried
     Optional('retry-exit-status'): int,
 
     # Whether to perform a gecko checkout.
     Required('checkout', default=False): bool,
 
     # Wheter to perform a machine reboot after test is done
-    Optional('reboot', default=False): bool,
+    Optional('reboot', default=True): bool,
 
     # What to run
     Required('mozharness'): optionally_keyed_by(
         'test-platform', 'test-platform-phylum', {
             # the mozharness script used to run this task
             Required('script'): basestring,
 
             # the config files required for the task
@@ -222,17 +222,19 @@ test_description_schema = Schema({
             # 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): bool,
+            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',
             ),
@@ -312,17 +314,17 @@ def set_defaults(config, tests):
         else:
             test['allow-software-gl-layers'] = False
 
         test.setdefault('os-groups', [])
         test.setdefault('chunks', 1)
         test.setdefault('run-on-projects', ['all'])
         test.setdefault('instance-size', 'default')
         test.setdefault('max-run-time', 3600)
-        test.setdefault('reboot', False)
+        test.setdefault('reboot', True)
         test['mozharness'].setdefault('extra-options', [])
         yield test
 
 
 @transforms.add
 def set_target(config, tests):
     for test in tests:
         build_platform = test['build-platform']
@@ -369,23 +371,25 @@ def set_asan_docker_image(config, tests)
            test['build-platform'] == 'linux64-asan/opt':
             test['docker-image'] = {"in-tree": "desktop-test"}
         yield test
 
 
 @transforms.add
 def set_worker_implementation(config, tests):
     """Set the worker implementation based on the test platform."""
+    use_tc_worker = config.config['args'].taskcluster_worker
     for test in tests:
-        if test.get('suite', '') == 'talos':
+        if test['test-platform'].startswith('macosx'):
+            test['worker-implementation'] = \
+                'native-engine' if use_tc_worker else 'buildbot-bridge'
+        elif test.get('suite', '') == 'talos':
             test['worker-implementation'] = 'buildbot-bridge'
         elif test['test-platform'].startswith('win'):
             test['worker-implementation'] = 'generic-worker'
-        elif test['test-platform'].startswith('macosx'):
-            test['worker-implementation'] = 'native-engine'
         else:
             test['worker-implementation'] = 'docker-worker'
         yield test
 
 
 @transforms.add
 def set_tier(config, tests):
     """Set the tier based on policy for all test descriptions that do not
@@ -401,17 +405,18 @@ def set_tier(config, tests):
                                          'linux64/opt',
                                          'linux64/debug',
                                          'linux64-pgo/opt',
                                          'linux64-asan/opt',
                                          'android-4.3-arm7-api-15/opt',
                                          'android-4.3-arm7-api-15/debug',
                                          'android-4.2-x86/opt']:
                 test['tier'] = 1
-            elif test['test-platform'].startswith('windows'):
+            elif test['test-platform'].startswith('windows') \
+                    or test['worker-implementation'] == 'native-engine':
                 test['tier'] = 3
             else:
                 test['tier'] = 2
         yield test
 
 
 @transforms.add
 def set_expires_after(config, tests):
@@ -449,16 +454,17 @@ def handle_keyed_by(config, tests):
         'instance-size',
         'docker-image',
         'max-run-time',
         'chunks',
         'e10s',
         'suite',
         'run-on-projects',
         'os-groups',
+        'mozharness.chunked',
         'mozharness.config',
         'mozharness.extra-options',
     ]
     for test in tests:
         for field in fields:
             resolve_keyed_by(test, field, item_name=test['test-name'],
                              project=config.params['project'])
         yield test
@@ -579,25 +585,16 @@ def remove_linux_pgo_try_talos(config, t
             and test['suite'] == 'talos'
             and config.params['project'] == 'try'
         )
     for test in filter(predicate, tests):
         yield test
 
 
 @transforms.add
-def remove_native(config, tests):
-    """Remove native-engine jobs if -w is not given."""
-    for test in tests:
-        if test['worker-implementation'] != 'native-engine' \
-                or config.config['args'].taskcluster_worker:
-            yield test
-
-
-@transforms.add
 def make_job_description(config, tests):
     """Convert *test* descriptions to *job* descriptions (input to
     taskgraph.transforms.job)"""
 
     for test in tests:
         label = '{}-{}-{}'.format(config.kind, test['test-platform'], test['test-name'])
         if test['chunks'] > 1:
             label += '-{}'.format(test['this-chunk'])
--- a/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
@@ -26,18 +26,18 @@ config = {
     # decides whether we want to use moz_sign_cmd in env
     'enable_signing': True,
     'enable_ccache': True,
     'vcs_share_base': '/builds/hg-shared',
     'objdir': 'obj-firefox',
     'tooltool_script': ["/builds/tooltool.py"],
     'tooltool_bootstrap': "setup.sh",
     'enable_count_ctors': False,
-    'enable_talos_sendchange': True,
-    'enable_unittest_sendchange': True,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'OS X 10.7 %(branch)s',
     'platform': 'macosx64',
     'stage_platform': 'macosx64',
--- a/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_cross_builds.py
@@ -32,18 +32,18 @@ config = {
     ],
     'enable_ccache': True,
     'enable_check_test': False,
     'vcs_share_base': '/builds/hg-shared',
     'objdir': 'obj-firefox/',
     'tooltool_script': ["/builds/tooltool.py"],
     'tooltool_bootstrap': "setup.sh",
     'enable_count_ctors': False,
-    'enable_talos_sendchange': True,
-    'enable_unittest_sendchange': True,
+    'enable_talos_sendchange': False,
+    'enable_unittest_sendchange': False,
     #########################################################################
 
 
     #########################################################################
     ###### 64 bit specific ######
     'base_name': 'OS X 10.7 %(branch)s',
     'platform': 'macosx64',
     'stage_platform': 'macosx64',