Source code

Revision control

Copy as Markdown

Other Tools

# 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/.
from taskgraph.transforms.base import TransformSequence
transforms = TransformSequence()
#: Attributes a fuzz task inherits from the build it runs against.
BUILD_ATTRIBUTES = ("build_platform", "build_type", "fuzz", "tlsfuzz")
@transforms.add
def copy_build_attributes(config, tasks):
"""Give each fuzz task the platform attributes of the build it depends on.
Without them target_tasks.filter_platform() cannot place the task on a
platform and drops it, so no fuzz task is selectable with try syntax.
"""
for task in tasks:
dep = config.kind_dependencies_tasks[task["dependencies"]["build"]]
attributes = task.setdefault("attributes", {})
attributes.update({a: dep.attributes[a] for a in BUILD_ATTRIBUTES})
yield task