blob: 9c1b61e975734c39043b2a4acdb53b7dfa141ffe [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.
{
//
// Ensure to keep the realm_builder libraries up to date with anything needed from "parent"
// in |includes|.
//
// LINT.IfChange
include: [
"sys/component/realm_builder.shard.cml",
"syslog/client.shard.cml",
"trace/client.shard.cml",
],
// LINT.ThenChange(/sdk/lib/driver_test_realm/realm_builder/rust/src/lib.rs)
program: {
runner: "elf",
binary: "bin/driver_test_realm",
},
capabilities: [
{
protocol: [
"fuchsia.driver.test.Realm",
"fuchsia.system.state.SystemStateTransition",
],
},
// From #realm_builder to test.
{
protocol: "fuchsia.system.state.Administrator",
path: "/realm_builder_exposed_dir/fuchsia.system.state.Administrator",
},
{
protocol: "fuchsia.driver.development.Manager",
path: "/realm_builder_exposed_dir/fuchsia.driver.development.Manager",
},
{
protocol: "fuchsia.driver.framework.CompositeNodeManager",
path: "/realm_builder_exposed_dir/fuchsia.driver.framework.CompositeNodeManager",
},
{
protocol: "fuchsia.driver.registrar.DriverRegistrar",
path: "/realm_builder_exposed_dir/fuchsia.driver.registrar.DriverRegistrar",
},
{
protocol: "fuchsia.inspect.InspectSink",
path: "/realm_builder_exposed_dir/fuchsia.inspect.InspectSink",
},
{
directory: "dev-topological",
rights: [ "r*" ],
path: "/realm_builder_exposed_dir/dev-topological",
},
{
directory: "dev-class",
rights: [ "r*" ],
path: "/realm_builder_exposed_dir/dev-class",
},
// From DTR to #realm_builder
{
protocol: [
"fuchsia.boot.Items",
"fuchsia.driver.index.DriverIndex",
"fuchsia.driver.test.Internal",
"fuchsia.kernel.RootJob",
],
},
{
directory: "boot",
rights: [ "rx*" ],
path: "/boot",
},
{
directory: "base_drivers",
rights: [ "rx*" ],
path: "/base_drivers",
},
],
//
// Ensure to keep the realm_builder libraries up to date with anything added in |use|.
//
// LINT.IfChange
use: [
// Provided by the parent when it wants to override the DTR
// implementation. Config |tunnel_boot_items| needs to be set.
{
protocol: [ "fuchsia.boot.Items" ],
from: "parent",
availability: "optional",
},
{
protocol: "fuchsia.pkg.PackageResolver-hermetic",
from: "parent",
},
],
// LINT.ThenChange(/sdk/lib/driver_test_realm/realm_builder/rust/src/lib.rs)
offer: [
{
protocol: [
"fuchsia.component.resolution.Resolver-hermetic",
"fuchsia.pkg.PackageResolver-hermetic",
],
from: "parent",
to: "#realm_builder",
},
{
protocol: [
"fuchsia.boot.Items",
"fuchsia.driver.test.Internal",
"fuchsia.kernel.RootJob",
"fuchsia.system.state.SystemStateTransition",
],
from: "self",
to: "#realm_builder",
},
{
directory: "boot",
from: "self",
to: "#realm_builder",
},
{
directory: "base_drivers",
from: "self",
to: "#realm_builder",
},
],
//
// Ensure to keep the realm_builder libraries up to date with anything added in |expose|.
//
// LINT.IfChange
expose: [
{
directory: [
"dev-class",
"dev-topological",
],
from: "self",
},
{
protocol: [
"fuchsia.driver.development.Manager",
"fuchsia.driver.framework.CompositeNodeManager",
"fuchsia.driver.registrar.DriverRegistrar",
"fuchsia.driver.test.Realm",
"fuchsia.system.state.Administrator",
],
from: "self",
},
],
// LINT.ThenChange(/sdk/lib/driver_test_realm/realm_builder/rust/src/lib.rs)
config: {
tunnel_boot_items: {
type: "bool",
mutability: [ "parent" ],
},
},
}