mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
648d8a8775
This patch gets us building an updater binary that always embeds the dep certificates (instead of release or nightly), and builds a new tests package that includes it. This was originally D5900, but that was backed out due to busting artifact builds. I've fixed that by removing the Makefile that Ted pointed out is unnecessary. Differential Revision: https://phabricator.services.mozilla.com/D6418 --HG-- extra : moz-landing-system : lando
95 lines
3.1 KiB
Python
95 lines
3.1 KiB
Python
#!/usr/bin/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/.
|
|
|
|
import json
|
|
|
|
from argparse import ArgumentParser
|
|
|
|
ALL_HARNESSES = [
|
|
'common', # Harnesses without a specific package will look here.
|
|
'mochitest',
|
|
'reftest',
|
|
'xpcshell',
|
|
'cppunittest',
|
|
'jittest',
|
|
'mozbase',
|
|
'web-platform',
|
|
'talos',
|
|
'raptor',
|
|
'awsy',
|
|
'gtest',
|
|
'updater-dep'
|
|
]
|
|
|
|
PACKAGE_SPECIFIED_HARNESSES = [
|
|
'cppunittest',
|
|
'mochitest',
|
|
'reftest',
|
|
'xpcshell',
|
|
'web-platform',
|
|
'talos',
|
|
'raptor',
|
|
'awsy',
|
|
'updater-dep',
|
|
]
|
|
|
|
# These packages are not present for every build configuration.
|
|
OPTIONAL_PACKAGES = [
|
|
'gtest',
|
|
]
|
|
|
|
|
|
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.")
|
|
for harness in PACKAGE_SPECIFIED_HARNESSES:
|
|
parser.add_argument("--%s" % harness, required=True,
|
|
action="store", dest=harness,
|
|
help="Name of the %s zip." % harness)
|
|
for harness in OPTIONAL_PACKAGES:
|
|
parser.add_argument("--%s" % harness, required=False,
|
|
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()
|
|
|
|
|
|
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
|
|
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 + OPTIONAL_PACKAGES:
|
|
pkg_name = getattr(args, harness, None)
|
|
if pkg_name is None:
|
|
continue
|
|
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)
|