// 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 realm installs various testing collections.
{
    include: [
        // Required: Include various test collections/realms.
        "//sdk/ctf/test_realm/meta/test-collection.shard.cml",
        "//src/devices/testing/devices_test_realm.shard.cml",
        "//src/lib/vulkan/vulkan_test_realm.shard.cml",
        "//src/media/testing/drm_test_realm.shard.cml",
        "//src/sys/component_manager/tests/capability_provider_vfs_compliance/vfs_compliance_test_realm.shard.cml",
        "//src/sys/testing/meta/chromium_test_realm.shard.cml",

        // Optional: Include optional runners.
        "//src/sys/testing/meta/runners/fuzz-test-runner.shard.cml",
        "//src/sys/testing/meta/runners/inspect-test-runner.shard.cml",
        "//src/sys/testing/meta/runners/netemul-test-runner.shard.cml",
        "//src/sys/testing/meta/runners/standard-test-runners.shard.cml",
        "//src/sys/testing/meta/runners/starnix-test-runner.shard.cml",
        "//src/sys/testing/meta/runners/stress-test-runner.shard.cml",

        // Required: Include various test collections/realms.
        "//src/sys/testing/meta/starnix-tests.shard.cml",
        "//src/sys/testing/meta/system-tests.shard.cml",
        "//src/sys/testing/meta/test-arch-tests.shard.cml",
        "//src/testing/system-validation/meta/system_validation_test_realm.shard.cml",

        // Required: Include other required shards.
        "sys/component/realm_builder.shard.cml",
        "syslog/client.shard.cml",
    ],
    expose: [
        // Required: Expose Realm protocol so that test manager can launch tests
        // in the realm.
        {
            protocol: "fuchsia.component.Realm",
            from: "framework",
        },
    ],

    // TODO(https://fxbug.dev/42063673): Move to corresponding runner and collection
    // files.
    environments: [
        {
            name: "test-env",
            extends: "realm",
            runners: [
                {
                    runner: "elf_test_runner",
                    from: "#elf_test_runner",
                },
                {
                    runner: "elf_test_ambient_exec_runner",
                    from: "#elf_test_ambient_exec_runner",
                },
                {
                    runner: "elf_test_create_raw_processes_runner",
                    from: "#elf_test_create_raw_processes_runner",
                },
                {
                    runner: "elf_test_create_raw_processes_ambient_exec_runner",
                    from: "#elf_test_create_raw_processes_ambient_exec_runner",
                },
                {
                    runner: "gtest_runner",
                    from: "#gtest_runner",
                },
                {
                    runner: "gunit_runner",
                    from: "#gunit_runner",
                },
                {
                    runner: "netemul_test_runner",
                    from: "#netemul_test_runner",
                },
                {
                    runner: "rust_test_runner",
                    from: "#rust_test_runner",
                },
                {
                    runner: "rust_test_create_raw_processes_runner",
                    from: "#rust_test_create_raw_processes_runner",
                },
                {
                    runner: "rust_test_next_vdso_runner",
                    from: "#rust_test_next_vdso_runner",
                },
                {
                    runner: "starnix_test_runner",
                    from: "#starnix_test_runners",
                },
                {
                    runner: "starnix_unit_test_runner",
                    from: "#starnix_test_runners",
                },
                {
                    runner: "inspect_test_runner",
                    from: "#inspect_test_runner",
                },
                {
                    runner: "go_test_runner",
                    from: "#go_test_runner",
                },
                {
                    runner: "stress_test_runner",
                    from: "#stress_test_runner",
                },
                {
                    runner: "realm_builder",
                    from: "#realm_builder_server",
                },
            ],
            resolvers: [
                {
                    resolver: "realm_builder_resolver",
                    from: "#realm_builder_server",
                    scheme: "realm-builder",
                },
            ],
            __stop_timeout_ms: 30000,
        },
    ],
}
