// Copyright 2020 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.
{
    children: [
        {
            name: "isolated_devmgr",
            url: "fuchsia-pkg://fuchsia.com/pkg-cache-integration-tests#meta/isolated-devmgr.cm",
            startup: "eager",
        },
        {
            name: "pkg_cache_integration_test",
            url: "fuchsia-pkg://fuchsia.com/pkg-cache-integration-tests#meta/pkg-cache-integration-test.cm",
        },
    ],
    offer: [
        {
            protocol: "fuchsia.logger.LogSink",
            from: "parent",
            to: [
                "#isolated_devmgr",
                "#pkg_cache_integration_test",
            ],
        },
        {
            protocol: [
                "fuchsia.process.Launcher",
                "fuchsia.sys.Launcher",
            ],
            from: "parent",
            to: [ "#isolated_devmgr" ],
        },
        {
            protocol: [
                "fuchsia.process.Launcher",
                "fuchsia.sys.Launcher",
            ],
            from: "parent",
            to: [ "#pkg_cache_integration_test" ],
        },
        {
            storage: "temp",
            from: "parent",
            to: [ "#pkg_cache_integration_test" ],
        },
        {
            directory: "dev",
            from: "#isolated_devmgr",
            to: [ "#pkg_cache_integration_test" ],
        },
        {
            protocol: "fuchsia.diagnostics.ArchiveAccessor",
            from: "parent",
            to: [ "#pkg_cache_integration_test" ],
        },
    ],
    expose: [
        {
            protocol: "fuchsia.test.Suite",
            from: "#pkg_cache_integration_test",
        },
    ],
}
