// Copyright {{COPYRIGHT_YEAR}} 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.

// {{PROJECT_NAME}} test component manifest.
// For information on manifest format and features,
// see https://fuchsia.dev/fuchsia-src/concepts/components/component_manifests.
//
// This file was generated by the `fx create component-v2` command. The template
// is located at `//tools/create/templates/component-v2/meta/$_test.cml.tmpl-rust`.
// If something is broken, consider authoring a fix.

{
    program: {
        // Run the Rust test adapter, which will configure the environment
        // and execute the test binary.
        binary: "bin/rust_test_adapter",
        args: [ "/pkg/test/{{PROJECT_NAME}}_test" ],
    },
    use: [
        // Use the built-in ELF runner to run Rust binaries.
        { runner: "elf" },

        // Needed for the Rust test framework to run tests in sub-processes.
        { protocol: "/svc/fuchsia.process.Launcher" },
    ],
    expose: [
        // The Fuchsia Test Framework expects this service to be exposed from the
        // test component. The Rust test adapter provides this service.
        {
            protocol: "/svc/fuchsia.test.Suite",
            from: "self",
        },
    ],
}
