blob: f51a2fae6fa036e497ee9e92bbe7117cd8a602bc [file] [log] [blame]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/components.gni")
import("//build/test.gni")
# Takes a test and makes it the child of a component that also provides a decompressor sandbox
# protocol by starting it up as a sibling to the test. This decompressor sandbox component handles
# all decompression for the blobfs process and it will not start up the pager without it.
# Parameters
# forwarded_protocols: A list of protocols to offer to the test from the parent.
# test_url: The component url for the test that is being wrapped.
# shard_includes: Shards to include with generated manifest file.
template("wrap_with_decompressor") {
generated_target = "${target_name}_generated_wrapper_manifest"
forward_variables_from(invoker,
[
"forwarded_protocols",
"test_url",
"shard_includes",
])
assert(defined(test_url))
if (!defined(forwarded_protocols)) {
forwarded_protocols = [ "fuchsia.logger.LogSink" ]
}
if (!defined(shard_includes)) {
shard_includes = []
}
fuchsia_test_component_manifest(generated_target) {
visibility = [ ":*" ]
metadata = {
test_component_manifest_cml = [
{
include = shard_includes
children = [
{
name = "decompressor"
url = "#meta/decompressor-sandbox.cm"
},
{
name = "test"
url = test_url
},
]
offer = [
{
protocol = forwarded_protocols
from = "parent"
to = "#test"
},
{
protocol = "fuchsia.logger.LogSink"
from = "parent"
to = "#decompressor"
},
{
protocol = "fuchsia.blobfs.internal.DecompressorCreator"
from = "#decompressor"
to = "#test"
},
]
expose = [
{
protocol = "fuchsia.test.Suite"
from = "#test"
},
]
},
]
}
}
manifest = get_target_outputs(":$generated_target")
manifest = manifest[0]
fuchsia_unittest_component(target_name) {
forward_variables_from(invoker,
[
"deps",
"manifest",
"manifest_deps",
"visibility",
"component_name",
"test_type",
])
if (!defined(manifest_deps)) {
manifest_deps = []
}
manifest_deps += [ ":$generated_target" ]
}
}