// 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.

// This shard should be used when writing CTF tests using Google Test. This shard
// will add two subpackages to your component hierarchy, ensuring that the test
// runner and gtest are always compatible. Test components using this shard
// should be started in the #subpackaged-runner-env environment.
//
// The following subpackages need to be added to the test's
// ctf_fuchsia_package definition:
//
// subpackages = [
//  "//src/sys/test_runners/gtest:gtest-runner",
//  "//src/sys/test_runners/lib_loader_cache:lib_loader_runner_cache",
// ]
{
    children: [
        {
            name: "subpackaged_gtest_runner",
            url: "gtest-runner#meta/gtest-runner.cm",
        },
        {
            name: "lib_loader_cache",
            url: "lib_loader_runner_cache#meta/lib_loader_runner_cache.cm",
        },
    ],
    offer: [
        {
            protocol: "fuchsia.process.Launcher",
            from: "parent",
            to: "#subpackaged_gtest_runner",
        },
        {
            protocol: "fuchsia.test.runner.LibraryLoaderCacheBuilder",
            from: "#lib_loader_cache",
            to: "#subpackaged_gtest_runner",
        },
        {
            storage: "data",
            from: "parent",
            to: "#subpackaged_gtest_runner",
        },
        {
            protocol: "fuchsia.inspect.InspectSink",
            from: "parent",
            to: [
                "#lib_loader_cache",
                "#subpackaged_gtest_runner",
            ],
        },
    ],
    environments: [
        {
            name: "subpackaged-runner-env",
            extends: "realm",
            runners: [
                {
                    runner: "gtest_runner",
                    from: "#subpackaged_gtest_runner",
                },
            ],
        },
    ],
}
