Bug 917999 - Part 3.1 - Prepare taskcluster for a split test package. r=jlal, a=test-only
authorChris Manchester <cmanchester@mozilla.com>
Mon, 29 Jun 2015 11:16:51 -0700
changeset 281403 438ba46e2a2acbaf5bd3f6ad3d174ab95c347184
parent 281402 4de8800850d9002f3e5fff79e5a26e3337cb6fde
child 281404 0c91ec35ff281b659e9e06f70bc4b227e5794b86
push id4932
push userjlund@mozilla.com
push dateMon, 10 Aug 2015 18:23:06 +0000
treeherdermozilla-beta@6dd5a4f5f745 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjlal, test-only
bugs917999
milestone41.0a2
Bug 917999 - Part 3.1 - Prepare taskcluster for a split test package. r=jlal, a=test-only CLOSED TREE
build/gen_test_packages_manifest.py
testing/taskcluster/README.md
testing/taskcluster/mach_commands.py
testing/taskcluster/scripts/builder/build-b2g-desktop.sh
testing/taskcluster/scripts/builder/build-emulator-x86.sh
testing/taskcluster/scripts/builder/build-emulator.sh
testing/taskcluster/scripts/builder/build-mulet-linux.sh
testing/taskcluster/taskcluster_graph/build_task.py
testing/taskcluster/tasks/builds/b2g_desktop_base.yml
testing/taskcluster/tasks/builds/mulet_linux.yml
testing/taskcluster/tasks/tests/b2g_build_test.yml
testing/taskcluster/tasks/tests/b2g_build_unit.yml
testing/taskcluster/tasks/tests/b2g_gaia_js_integration_tests.yml
testing/taskcluster/tasks/tests/b2g_gaia_ui_test_accessibility.yml
testing/taskcluster/tasks/tests/b2g_gaia_ui_test_functional.yml
testing/taskcluster/tasks/tests/b2g_gaia_ui_test_unit.yml
testing/taskcluster/tasks/tests/b2g_gaia_unit.yml
testing/taskcluster/tasks/tests/b2g_gip_oop.yml
testing/taskcluster/tasks/tests/b2g_linter.yml
testing/taskcluster/tasks/tests/mulet_mochitests.yml
testing/taskcluster/tasks/tests/mulet_reftests.yml
testing/testsuite-targets.mk
toolkit/mozapps/installer/package-name.mk
--- a/build/gen_test_packages_manifest.py
+++ b/build/gen_test_packages_manifest.py
@@ -32,16 +32,19 @@ PACKAGE_SPECIFIED_HARNESSES = [
 def parse_args():
     parser = ArgumentParser(description='Generate a test_packages.json file to tell automation which harnesses require which test packages.')
     parser.add_argument("--common", required=True,
                         action="store", dest="tests_common",
                         help="Name of the \"common\" archive, a package to be used by all harnesses.")
     parser.add_argument("--jsshell", required=True,
                         action="store", dest="jsshell",
                         help="Name of the jsshell zip.")
+    parser.add_argument("--use-short-names", action="store_true",
+                        help="Use short names for packages (target.$name.tests.zip "
+                             "instead of $(PACKAGE_BASENAME).$name.tests.zip)")
     for harness in PACKAGE_SPECIFIED_HARNESSES:
         parser.add_argument("--%s" % harness, required=True,
                             action="store", dest=harness,
                             help="Name of the %s zip." % harness)
     parser.add_argument("--dest-file", required=True,
                         action="store", dest="destfile",
                         help="Path to the output file to be written.")
     return parser.parse_args()
@@ -49,21 +52,27 @@ def parse_args():
 def generate_package_data(args):
     # Generate a dictionary mapping test harness names (exactly as they're known to
     # mozharness and testsuite-targets.mk, ideally) to the set of archive names that
     # harness depends on to run.
     # mozharness will use this file to determine what test zips to download,
     # which will be an optimization once parts of the main zip are split to harness
     # specific zips.
     tests_common = args.tests_common
+    if args.use_short_names:
+        tests_common = 'target.common.tests.zip'
+
     jsshell = args.jsshell
 
     harness_requirements = dict([(k, [tests_common]) for k in ALL_HARNESSES])
     harness_requirements['jittest'].append(jsshell)
     for harness in PACKAGE_SPECIFIED_HARNESSES:
-        harness_requirements[harness].append(getattr(args, harness))
+        pkg_name = getattr(args, harness)
+        if args.use_short_names:
+            pkg_name = 'target.%s.tests.zip' % harness
+        harness_requirements[harness].append(pkg_name)
     return harness_requirements
 
 if __name__ == '__main__':
     args = parse_args()
     packages_data = generate_package_data(args)
     with open(args.destfile, 'w') as of:
         json.dump(packages_data, of, indent=4)
--- a/testing/taskcluster/README.md
+++ b/testing/taskcluster/README.md
@@ -82,17 +82,17 @@ task:
       'public/some_tests.zip': '/path/to/tests'
 
   extra:
     # Build tasks may put their artifacts anywhere but there are common
     # resources that test tasks need to do their job correctly so we
     # need to provide an easy way to lookup the correct aritfact path.
     locations:
       build: 'public/name_i_made_up.tar.gz'
-      tests: 'public/some_tests.zip'
+      tests: 'public/some_tests.zip' or test_packages: 'public/test_packages.json'
 ```
 
 #### Templates properties
 
   - repository: Target HG repository (ex:
     https://hg.mozilla.org/mozilla-central)
 
   - revision: Target HG revision for gecko
--- a/testing/taskcluster/mach_commands.py
+++ b/testing/taskcluster/mach_commands.py
@@ -275,20 +275,29 @@ class Graph(object):
             if params['revision_hash']:
                 decorate_task_treeherder_routes(build_task['task'],
                                                 treeherder_route)
 
             # Ensure each build graph is valid after construction.
             taskcluster_graph.build_task.validate(build_task)
             graph['tasks'].append(build_task)
 
-            tests_url = ARTIFACT_URL.format(
-                build_parameters['build_slugid'],
-                build_task['task']['extra']['locations']['tests']
-            )
+            test_packages_url, tests_url = None, None
+
+            if 'test_packages' in build_task['task']['extra']['locations']:
+                test_packages_url = ARTIFACT_URL.format(
+                    build_parameters['build_slugid'],
+                    build_task['task']['extra']['locations']['test_packages']
+                )
+
+            if 'tests' in build_task['task']['extra']['locations']:
+                tests_url = ARTIFACT_URL.format(
+                    build_parameters['build_slugid'],
+                    build_task['task']['extra']['locations']['tests']
+                )
 
             build_url = ARTIFACT_URL.format(
                 build_parameters['build_slugid'],
                 build_task['task']['extra']['locations']['build']
             )
 
             # img_url is only necessary for device builds
             img_url = ARTIFACT_URL.format(
@@ -322,17 +331,20 @@ class Graph(object):
                 message = '({}), extra.treeherder.collection must contain one type'
                 raise ValueError(message.fomrat(build['task']))
 
             for test in build['dependents']:
                 test = test['allowed_build_tasks'][build['task']]
                 test_parameters = copy.copy(build_parameters)
                 test_parameters['build_url'] = build_url
                 test_parameters['img_url'] = img_url
-                test_parameters['tests_url'] = tests_url
+                if tests_url:
+                    test_parameters['tests_url'] = tests_url
+                if test_packages_url:
+                    test_parameters['test_packages_url'] = test_packages_url
 
                 test_definition = templates.load(test['task'], {})['task']
                 chunk_config = test_definition['extra']['chunks']
 
                 # Allow branch configs to override task level chunking...
                 if 'chunks' in test:
                     chunk_config['total'] = test['chunks']
 
--- a/testing/taskcluster/scripts/builder/build-b2g-desktop.sh
+++ b/testing/taskcluster/scripts/builder/build-b2g-desktop.sh
@@ -22,26 +22,29 @@ cd $MOZ_OBJDIR
 make package package-tests buildsymbols
 
 ### Extract artifacts
 # Navigate to dist/ folder
 cd $MOZ_OBJDIR/dist
 ls -lah $MOZ_OBJDIR/dist/
 
 # Target names are cached so make sure we discard them first if found.
-rm -f target.linux-x86_64.tar.bz2 target.linux-x86_64.json target.tests.zip
+rm -f target.linux-x86_64.tar.bz2 target.linux-x86_64.json target*.tests.zip
 
 # Artifacts folder is outside of the cache.
 mkdir -p $HOME/artifacts/
 
 # Discard version numbers from packaged files, they just make it hard to write
 # the right filename in the task payload where artifacts are declared
 mv *.linux-x86_64.tar.bz2       $HOME/artifacts/target.linux-x86_64.tar.bz2
 mv *.linux-x86_64.json          $HOME/artifacts/target.linux-x86_64.json
-mv *.tests.zip                  $HOME/artifacts/target.tests.zip
+for name in common cppunittest reftest mochitest xpcshell web-platform; do
+    mv *.$name.tests.zip          $HOME/artifacts/target.$name.tests.zip ;
+done
+mv test_packages_tc.json        $HOME/artifacts/test_packages.json
 mv *.crashreporter-symbols.zip  $HOME/artifacts/target.crashreporter-symbols.zip
 
 # If the simulator does not exist don't fail
 mv fxos-simulator*              $HOME/artifacts/fxos-simulator.xpi || :
 
 ccache -s
 
 ################################### build.sh ###################################
--- a/testing/taskcluster/scripts/builder/build-emulator-x86.sh
+++ b/testing/taskcluster/scripts/builder/build-emulator-x86.sh
@@ -53,13 +53,13 @@ rm -rf $WORKSPACE/B2G/out/target/product
 # Move files into artifact locations!
 mkdir -p $HOME/artifacts
 
 ls -lah $WORKSPACE/B2G/out
 ls -lah $WORKSPACE/B2G/objdir-gecko/dist/
 
 mv $WORKSPACE/B2G/sources.xml $HOME/artifacts/sources.xml
 mv $WORKSPACE/B2G/out/target/product/generic_x86/tests/gaia-tests.zip $HOME/artifacts/gaia-tests.zip
-mv $WORKSPACE/B2G/out/target/product/generic_x86/tests/b2g-*tests.zip $HOME/artifacts/b2g-tests.zip
+mv $WORKSPACE/B2G/out/target/product/generic_x86/tests/b2g-*.zip $HOME/artifacts
 mv $WORKSPACE/B2G/out/emulator.tar.gz $HOME/artifacts/emulator.tar.gz
 mv $WORKSPACE/B2G/objdir-gecko/dist/b2g-*.crashreporter-symbols.zip $HOME/artifacts/b2g-crashreporter-symbols.zip
 
 ccache -s
--- a/testing/taskcluster/scripts/builder/build-emulator.sh
+++ b/testing/taskcluster/scripts/builder/build-emulator.sh
@@ -59,13 +59,13 @@ rm -rf $WORKSPACE/B2G/out/target/product
 # Move files into artifact locations!
 mkdir -p $HOME/artifacts
 
 ls -lah $WORKSPACE/B2G/out
 ls -lah $WORKSPACE/B2G/objdir-gecko/dist/
 
 mv $WORKSPACE/B2G/sources.xml $HOME/artifacts/sources.xml
 mv $WORKSPACE/B2G/out/target/product/generic/tests/gaia-tests.zip $HOME/artifacts/gaia-tests.zip
-mv $WORKSPACE/B2G/out/target/product/generic/tests/b2g-*tests.zip $HOME/artifacts/b2g-tests.zip
+mv $WORKSPACE/B2G/out/target/product/generic/tests/b2g-*.zip $HOME/artifacts
 mv $WORKSPACE/B2G/out/emulator.tar.gz $HOME/artifacts/emulator.tar.gz
 mv $WORKSPACE/B2G/objdir-gecko/dist/b2g-*.crashreporter-symbols.zip $HOME/artifacts/b2g-crashreporter-symbols.zip
 
 ccache -s
--- a/testing/taskcluster/scripts/builder/build-mulet-linux.sh
+++ b/testing/taskcluster/scripts/builder/build-mulet-linux.sh
@@ -16,24 +16,27 @@ make package package-tests buildsymbols;
 
 ### Extract artifacts
 # Navigate to dist/ folder
 cd $MOZ_OBJDIR/dist;
 
 ls -lah $MOZ_OBJDIR/dist/
 
 # Target names are cached so make sure we discard them first if found.
-rm -f target.linux-x86_64.tar.bz2 target.linux-x86_64.json target.tests.zip
+rm -f target.linux-x86_64.tar.bz2 target.linux-x86_64.json target*.tests.zip
 
 # Artifacts folder is outside of the cache.
 mkdir -p $HOME/artifacts/
 
 # Discard version numbers from packaged files, they just make it hard to write
 # the right filename in the task payload where artifacts are declared
 mv *.linux-x86_64.tar.bz2       $HOME/artifacts/target.linux-x86_64.tar.bz2
 mv *.linux-x86_64.json          $HOME/artifacts/target.linux-x86_64.json
-mv *.tests.zip                  $HOME/artifacts/target.tests.zip
+for name in common cppunittest reftest mochitest xpcshell web-platform; do
+    mv *.$name.tests.zip          $HOME/artifacts/target.$name.tests.zip ;
+done
+mv test_packages_tc.json        $HOME/artifacts/test_packages.json
 mv *.crashreporter-symbols.zip  $HOME/artifacts/target.crashreporter-symbols.zip
 mv jsshell-linux-x86_64.zip     $HOME/artifacts/jsshell-linux-x86_64.zip
 
 ccache -s
 
 ################################### build.sh ###################################
--- a/testing/taskcluster/taskcluster_graph/build_task.py
+++ b/testing/taskcluster/taskcluster_graph/build_task.py
@@ -24,10 +24,11 @@ def validate(task):
     if 'locations' not in task_def['extra']:
         raise BuildTaskValidationException('task.extra.locations missing')
 
     locations = task_def['extra']['locations']
 
     if 'build' not in locations:
         raise BuildTaskValidationException('task.extra.locations.build missing')
 
-    if 'tests' not in locations:
-        raise BuildTaskValidationException('task.extra.locations.tests missing')
+    if 'tests' not in locations and 'test_packages' not in locations:
+        raise BuildTaskValidationException('task.extra.locations.tests or '
+                                           'task.extra.locations.tests_packages missing')
--- a/testing/taskcluster/tasks/builds/b2g_desktop_base.yml
+++ b/testing/taskcluster/tasks/builds/b2g_desktop_base.yml
@@ -30,9 +30,9 @@ task:
       machine:
         platform: b2g-linux64
 
     # Rather then enforcing particular conventions we require that all build
     # tasks provide the "build" extra field to specify where the build and tests
     # files are located.
     locations:
       build: 'public/build/target.linux-x86_64.tar.bz2'
-      tests: 'public/build/target.tests.zip'
+      test_packages: 'public/build/test_packages.json'
--- a/testing/taskcluster/tasks/builds/mulet_linux.yml
+++ b/testing/taskcluster/tasks/builds/mulet_linux.yml
@@ -45,9 +45,9 @@ task:
       groupSymbol: "?"
       machine:
         platform: mulet-linux64
     # Rather then enforcing particular conventions we require that all build
     # tasks provide the "build" extra field to specify where the build and tests
     # files are located.
     locations:
       build: 'public/build/target.linux-x86_64.tar.bz2'
-      tests: 'public/build/target.tests.zip'
+      test_packages: 'public/build/test_packages.json'
--- a/testing/taskcluster/tasks/tests/b2g_build_test.yml
+++ b/testing/taskcluster/tasks/tests/b2g_build_test.yml
@@ -13,17 +13,17 @@ task:
       - >
         python ./mozharness/scripts/gaia_build_integration.py
         --no-read-buildbot-config
         --config-file ./mozharness/configs/b2g/gaia_integration_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --installer-url {{build_url}}
         --no-pull
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
         --xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
     artifacts:
       'public/build':
         type: directory
         path: '/home/worker/artifacts/'
--- a/testing/taskcluster/tasks/tests/b2g_build_unit.yml
+++ b/testing/taskcluster/tasks/tests/b2g_build_unit.yml
@@ -15,17 +15,17 @@ task:
         python ./mozharness/scripts/gaia_build_unit.py
         --no-read-buildbot-config
         --config-file ./mozharness/configs/b2g/gaia_integration_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --no-pull
         --download-symbols ondemand
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
     artifacts:
       'public/build':
         type: directory
         path: '/home/worker/artifacts/'
         expires: '{{#from_now}}1 year{{/from_now}}'
 
--- a/testing/taskcluster/tasks/tests/b2g_gaia_js_integration_tests.yml
+++ b/testing/taskcluster/tasks/tests/b2g_gaia_js_integration_tests.yml
@@ -14,17 +14,17 @@ task:
       - >
         python ./mozharness/scripts/gaia_integration.py
         --no-read-buildbot-config
         --config-file b2g/gaia_integration_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --no-pull
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --total-chunk {{total_chunks}}
         --this-chunk {{chunk}}
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
     artifacts:
       'public/build':
         type: directory
--- a/testing/taskcluster/tasks/tests/b2g_gaia_ui_test_accessibility.yml
+++ b/testing/taskcluster/tasks/tests/b2g_gaia_ui_test_accessibility.yml
@@ -14,17 +14,17 @@ task:
       - >
         python ./mozharness/scripts/marionette.py
         --no-read-buildbot-config
         --config-file marionette/gaia_ui_test_prod_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --no-pull
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --gip-suite accessibility
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
         --xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
     artifacts:
       'public/build':
         type: directory
--- a/testing/taskcluster/tasks/tests/b2g_gaia_ui_test_functional.yml
+++ b/testing/taskcluster/tasks/tests/b2g_gaia_ui_test_functional.yml
@@ -14,17 +14,17 @@ task:
       - >
         python ./mozharness/scripts/marionette.py
         --no-read-buildbot-config
         --config-file marionette/gaia_ui_test_prod_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --no-pull
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --gip-suite functional
         --total-chunk {{total_chunks}}
         --this-chunk {{chunk}}
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
         --xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
     artifacts:
--- a/testing/taskcluster/tasks/tests/b2g_gaia_ui_test_unit.yml
+++ b/testing/taskcluster/tasks/tests/b2g_gaia_ui_test_unit.yml
@@ -14,17 +14,17 @@ task:
       - >
         python ./mozharness/scripts/marionette.py
         --no-read-buildbot-config
         --config-file marionette/gaia_ui_test_prod_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --installer-url {{build_url}}
         --no-pull
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --gip-suite unit
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
         --xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
     artifacts:
       'public/build':
         type: directory
--- a/testing/taskcluster/tasks/tests/b2g_gaia_unit.yml
+++ b/testing/taskcluster/tasks/tests/b2g_gaia_unit.yml
@@ -15,17 +15,17 @@ task:
         python ./mozharness/scripts/gaia_unit.py
         --no-read-buildbot-config
         --config-file ./mozharness/configs/b2g/gaia_unit_production_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --download-symbols ondemand
         --no-pull
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
         --xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
     artifacts:
       'public/build':
         type: directory
         path: '/home/worker/artifacts/'
         expires: '{{#from_now}}1 year{{/from_now}}'
--- a/testing/taskcluster/tasks/tests/b2g_gip_oop.yml
+++ b/testing/taskcluster/tasks/tests/b2g_gip_oop.yml
@@ -15,17 +15,17 @@ task:
         python ./mozharness/scripts/marionette.py
         --no-read-buildbot-config
         --config-file marionette/gaia_ui_test_prod_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --config-file ./mozharness_configs/remove_executables.py
         --no-pull
         --app-arg -oop
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
         --xre-url https://queue.taskcluster.net/v1/task/wXAHAaxDQpqxoWF1iljJjg/runs/0/artifacts/public/cache/xulrunner-sdk-40.zip
     artifacts:
       'public/build':
         type: directory
         path: '/home/worker/artifacts/'
--- a/testing/taskcluster/tasks/tests/b2g_linter.yml
+++ b/testing/taskcluster/tasks/tests/b2g_linter.yml
@@ -13,17 +13,17 @@ task:
       - >
         python ./mozharness/scripts/gaia_linter.py
         --no-read-buildbot-config
         --config-file ./mozharness/configs/b2g/gaia_integration_config.py
         --config-file ./mozharness_configs/gaia_integration_override.py
         --download-symbols ondemand
         --no-pull
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker
     artifacts:
       'public/build':
         type: directory
         path: '/home/worker/artifacts/'
         expires: '{{#from_now}}1 year{{/from_now}}'
 
--- a/testing/taskcluster/tasks/tests/mulet_mochitests.yml
+++ b/testing/taskcluster/tasks/tests/mulet_mochitests.yml
@@ -9,17 +9,17 @@ task:
     command:
       - entrypoint # entrypoint ensures we are running in xvfb
       - >
         python ./mozharness/scripts/desktop_unittest.py
         --no-read-buildbot-config
         --config-file ./mozharness/configs/unittests/linux_unittest.py
         --config-file ./mozharness_configs/remove_executables.py
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --mochitest-suite plain-chunked
         --total-chunk={{total_chunks}}
         --this-chunk={{chunk}}
     artifacts:
       'public/build':
         type: directory
         path: '/home/worker/artifacts/'
--- a/testing/taskcluster/tasks/tests/mulet_reftests.yml
+++ b/testing/taskcluster/tasks/tests/mulet_reftests.yml
@@ -14,17 +14,17 @@ task:
       - ./bin/pull_gaia.sh &&
       - >
         python ./mozharness/scripts/mulet_unittest.py --no-read-buildbot-config
         --config-file ./mozharness/configs/b2g/generic_config.py
         --config-file ./mozharness/configs/b2g/mulet_config.py
         --config-file ./mozharness_configs/remove_executables.py
         --no-pull
         --installer-url {{build_url}}
-        --test-url {{tests_url}}
+        --test-packages-url {{test_packages_url}}
         --download-symbols ondemand
         --test-suite reftest
         --test-manifest tests/layout/reftests/reftest.list
         --this-chunk {{chunk}}
         --total-chunk {{total_chunks}}
         --gaia-repo https://hg.mozilla.org/integration/gaia-central
         --gaia-dir /home/worker/gaia
     artifacts:
--- a/testing/testsuite-targets.mk
+++ b/testing/testsuite-targets.mk
@@ -402,16 +402,17 @@ package-tests: \
   stage-tps \
   stage-modules \
   stage-marionette \
   stage-cppunittests \
   stage-jittest \
   stage-web-platform-tests \
   stage-luciddream \
   test-packages-manifest \
+  test-packages-manifest-tc \
   $(NULL)
 ifdef MOZ_WEBRTC
 package-tests: stage-steeplechase
 endif
 else
 # This staging area has been built for us by universal/flight.mk
 PKG_STAGE = $(DIST)/universal/test-stage
 endif
@@ -421,16 +422,24 @@ TEST_PKGS := \
   mochitest \
   reftest \
   xpcshell \
   web-platform \
   $(NULL)
 
 PKG_ARG = --$(1) $(PKG_BASENAME).$(1).tests.zip
 
+test-packages-manifest-tc:
+	$(PYTHON) $(topsrcdir)/build/gen_test_packages_manifest.py \
+      --jsshell $(JSSHELL_NAME) \
+      --dest-file $(MOZ_TEST_PACKAGES_FILE_TC) \
+      --use-short-names \
+      $(call PKG_ARG,common) \
+      $(foreach pkg,$(TEST_PKGS),$(call PKG_ARG,$(pkg)))
+
 test-packages-manifest:
 	@rm -f $(MOZ_TEST_PACKAGES_FILE)
 	$(PYTHON) $(topsrcdir)/build/gen_test_packages_manifest.py \
       --jsshell $(JSSHELL_NAME) \
       --dest-file $(MOZ_TEST_PACKAGES_FILE) \
       $(call PKG_ARG,common) \
       $(foreach pkg,$(TEST_PKGS),$(call PKG_ARG,$(pkg)))
 
@@ -620,10 +629,11 @@ stage-instrumentation-tests: make-stage-
   stage-tps \
   stage-modules \
   stage-marionette \
   stage-steeplechase \
   stage-web-platform-tests \
   stage-instrumentation-tests \
   stage-luciddream \
   test-packages-manifest \
+  test-packages-manifest-tc \
   $(NULL)
 
--- a/toolkit/mozapps/installer/package-name.mk
+++ b/toolkit/mozapps/installer/package-name.mk
@@ -156,14 +156,15 @@ MOZ_SOURCE_STAMP = $(firstword $(shell h
 ifdef MOZ_INCLUDE_SOURCE_INFO
 MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
 endif
 
 MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).txt
 MOZ_BUILDINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).json
 MOZ_MOZINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).mozinfo.json
 MOZ_TEST_PACKAGES_FILE = $(DIST)/$(PKG_PATH)/test_packages.json
+MOZ_TEST_PACKAGES_FILE_TC = $(DIST)/$(PKG_PATH)/test_packages_tc.json
 
 # JavaScript Shell
 JSSHELL_NAME = jsshell-$(MOZ_PKG_PLATFORM).zip
 PKG_JSSHELL = $(DIST)/$(JSSHELL_NAME)
 
 endif # PACKAGE_NAME_MK_INCLUDED