// Copyright 2023 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.
{
    include: [
        "inspect/offer.shard.cml",
        "syslog/offer.shard.cml",
    ],
    program: {
        runner: "starnix_test_runner",
    },
    children: [
        {
            name: "kernel",
            url: "starnix_kernel#meta/starnix_kernel.cm",
        },
        {
            name: "ui",
            url: "test-ui-stack#meta/test-ui-stack.cm",
        },
        {
            name: "netstack",
            url: "netstack#meta/netstack.cm",
        },
        {
            name: "network-tun",
            url: "network-tun#meta/network-tun.cm",
        },
        {
            name: "power-broker",
            url: "power-broker#meta/power-broker.cm",
        },
        {
            name: "system-activity-governor",
            url: "system-activity-governor#meta/system-activity-governor.cm",
        },
        {
            name: "fake-hrtimer",
            url: "fake-hrtimer#meta/fake-hrtimer.cm",
        },
    ],
    capabilities: [
        { protocol: "fuchsia.test.Suite" },
    ],
    use: [
        {
            protocol: [ "fuchsia.component.Realm" ],
            from: "framework",
        },
    ],

    // The test runner will dispatch the permissions that the starnix kernel
    // need from the test to the runner.
    offer: [
        {
            protocol: [
                "fuchsia.buildinfo.Provider",
                "fuchsia.diagnostics.ArchiveAccessor",
                "fuchsia.kernel.Stats",
                "fuchsia.kernel.VmexResource",
                "fuchsia.logger.LogSink",
                "fuchsia.sysinfo.SysInfo",
                "fuchsia.sysmem.Allocator",
                "fuchsia.sysmem2.Allocator",
                "fuchsia.tracing.provider.Registry",
                "fuchsia.vulkan.loader.Loader",
            ],
            from: "parent",
            to: [ "#kernel" ],
        },
        {
            protocol: [ "fuchsia.power.broker.Topology" ],
            from: "#power-broker",
            to: [
                "#fake-hrtimer",
                "#kernel",
                "#system-activity-governor",
            ],
        },
        {
            storage: "data",
            from: "parent",
            to: [ "#container" ],
        },
        {
            protocol: [
                "fuchsia.power.suspend.Stats",
                "fuchsia.power.system.ActivityGovernor",
            ],
            from: "#system-activity-governor",
            to: [ "#kernel" ],
        },
        {
            protocol: [
                "fuchsia.logger.LogSink",
                "fuchsia.scheduler.RoleManager",
                "fuchsia.sysmem.Allocator",
                "fuchsia.sysmem2.Allocator",
                "fuchsia.tracing.provider.Registry",
                "fuchsia.vulkan.loader.Loader",
            ],
            from: "parent",
            to: "#ui",
        },
        {
            protocol: [
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.display.singleton.Info",
                "fuchsia.ui.input3.Keyboard",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.ui.test.input.Registry",
            ],
            from: "#ui",
            to: [ "#kernel" ],
        },
        {
            protocol: [
                "fuchsia.net.interfaces.admin.Installer",
                "fuchsia.net.interfaces.State",
                "fuchsia.net.root.Interfaces",
                "fuchsia.net.routes.admin.RouteTableV4",
                "fuchsia.net.routes.admin.RouteTableV6",
                "fuchsia.net.routes.StateV4",
                "fuchsia.net.routes.StateV6",
                "fuchsia.posix.socket.packet.Provider",
                "fuchsia.posix.socket.Provider",
                "fuchsia.posix.socket.raw.Provider",
            ],
            from: "#netstack",
            to: [ "#kernel" ],
        },
        {
            protocol: [ "fuchsia.net.tun.Control" ],
            from: "#network-tun",
            to: [ "#kernel" ],
        },
        {
            directory: "dev-gpu",
            from: "parent",
            to: [ "#kernel" ],
        },
        {
            directory: "boot-kernel",
            from: "parent",
            to: [ "#kernel" ],
        },
        {
            protocol: "fuchsia.logger.LogSink",
            from: "parent",
            to: [
                "#netstack",
                "#power-broker",
                "#system-activity-governor",
            ],
        },
        {
            directory: "dev-hrtimer",
            from: "#fake-hrtimer",
            to: [ "#kernel" ],
        },
    ],
    environments: [
        {
            name: "starnix_runner_env",
            extends: "realm",
            runners: [
                {
                    runner: "starnix",
                    from: "#kernel",
                },
            ],
        },
    ],
}
