blob: 11299bd382a2a333382f25118f0294025f8b01c7 [file]
# Copyright 2026 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.
load(
"//build/bazel/rules/components:fx_component.bzl",
"fx_component",
"fx_component_manifest",
"fx_test_component",
)
load("//build/bazel/rules/packages:fx_package.bzl", "fx_package")
load(
"//build/bazel/rules/packages:fx_packaged_binary.bzl",
"fx_packaged_binary",
)
load("//build/bazel/rules/rust:rustc_binary.bzl", "rustc_binary")
load("//build/bazel/rules/rust:rustc_test.bzl", "rustc_test")
load("//build/bazel/rules/testing:fx_test.bzl", "fx_test")
package(default_applicable_licenses = ["//:license"])
rustc_binary(
name = "service-routing-branch-bin",
testonly = True,
srcs = ["src/branch.rs"],
crate_name = "service_routing_branch_bin",
crate_root = "src/branch.rs",
edition = "2024",
deps = [
"//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_rust",
"//sdk/fidl/fuchsia.component:fuchsia.component_rust",
"//src/lib/fuchsia",
"//src/lib/fuchsia-component",
"//src/sys/component_manager/tests/fidl:components_rust",
"//third_party/rust_crates/vendor:anyhow",
"//third_party/rust_crates/vendor:argh",
"//third_party/rust_crates/vendor:futures",
"//third_party/rust_crates/vendor:log",
],
)
fx_packaged_binary(
name = "service-routing-branch-packaged-bin",
testonly = True,
binary = ":service-routing-branch-bin",
binary_name = "service_routing_branch_bin",
)
rustc_test(
name = "service-routing-test-bin",
srcs = ["src/service_routing_test.rs"],
crate_root = "src/service_routing_test.rs",
edition = "2024",
deps = [
"//examples/components/services/fidl:fuchsia.examples.services_rust",
"//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_rust",
"//sdk/fidl/fuchsia.component:fuchsia.component_rust",
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//sdk/fidl/fuchsia.sys2:fuchsia.sys2_rust",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-component-test",
"//src/lib/fuchsia-fs",
"//src/storage/lib/vfs/rust:vfs",
"//src/sys/component_manager/tests/fidl:components_rust",
"//src/sys/component_manager/tests/services/src/fidl:fuchsia.examples_rust",
"//src/sys/lib/cm_rust",
"//src/sys/lib/cm_types",
"//src/sys/lib/component-events",
"//src/sys/lib/moniker",
"//third_party/rust_crates/vendor:anyhow",
"//third_party/rust_crates/vendor:futures",
"//third_party/rust_crates/vendor:log",
"//third_party/rust_crates/vendor:test-case",
],
)
fx_packaged_binary(
name = "service-routing-test-packaged-bin",
testonly = True,
binary = ":service-routing-test-bin",
binary_name = "service_routing_test_bin",
)
rustc_test(
name = "filtered-service-routing-test-bin",
srcs = ["src/filtered_service_routing_test.rs"],
crate_root = "src/filtered_service_routing_test.rs",
edition = "2024",
deps = [
"//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl_rust",
"//sdk/fidl/fuchsia.component:fuchsia.component_rust",
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-fs",
"//src/sys/component_manager/tests/services/src/fidl:fuchsia.examples_rust",
"//third_party/rust_crates/vendor:log",
],
)
fx_packaged_binary(
name = "filtered-service-routing-test-packaged-bin",
testonly = True,
binary = ":filtered-service-routing-test-bin",
binary_name = "filtered_service_routing_test_bin",
)
rustc_binary(
name = "service-routing-client-bin",
testonly = True,
srcs = ["src/service_client.rs"],
crate_name = "service_routing_client_bin",
crate_root = "src/service_client.rs",
edition = "2024",
deps = [
"//src/lib/fuchsia",
"//src/lib/fuchsia-component",
"//src/sys/component_manager/tests/services/src/fidl:fuchsia.examples_rust",
"//third_party/rust_crates/vendor:anyhow",
"//third_party/rust_crates/vendor:futures",
],
)
fx_packaged_binary(
name = "service-routing-client-packaged-bin",
testonly = True,
binary = ":service-routing-client-bin",
binary_name = "service_routing_client_bin",
)
rustc_binary(
name = "multi_instance_echo_service_bin",
testonly = True,
srcs = ["src/multi_instance_echo_service.rs"],
crate_root = "src/multi_instance_echo_service.rs",
edition = "2024",
deps = [
"//src/lib/fuchsia",
"//src/lib/fuchsia-component",
"//src/sys/component_manager/tests/services/src/fidl:fuchsia.examples_rust",
"//third_party/rust_crates/vendor:anyhow",
"//third_party/rust_crates/vendor:futures",
"//third_party/rust_crates/vendor:log",
],
)
fx_packaged_binary(
name = "multi_instance_echo_service_packaged_bin",
testonly = True,
binary = ":multi_instance_echo_service_bin",
binary_name = "multi_instance_echo_service_bin",
)
fx_component_manifest(
name = "service-routing-branch-onecoll-manifest",
testonly = True,
component_name = "service-routing-branch-onecoll",
includes = [
"meta/service-routing-branch.shard.cml",
"//sdk/lib/inspect:offer.shard",
"//sdk/lib/syslog:client.shard",
"//sdk/lib/syslog:offer.shard",
],
manifest = "meta/service-routing-branch-onecoll.cml",
)
fx_component(
name = "service-routing-branch-onecoll",
testonly = True,
compiled_manifest = ":service-routing-branch-onecoll-manifest",
deps = [":service-routing-branch-packaged-bin"],
)
fx_component_manifest(
name = "service-routing-branch-twocoll-manifest",
testonly = True,
component_name = "service-routing-branch-twocoll",
includes = [
"meta/service-routing-branch.shard.cml",
"//sdk/lib/inspect:offer.shard",
"//sdk/lib/syslog:client.shard",
"//sdk/lib/syslog:offer.shard",
],
manifest = "meta/service-routing-branch-twocoll.cml",
)
fx_component(
name = "service-routing-branch-twocoll",
testonly = True,
compiled_manifest = ":service-routing-branch-twocoll-manifest",
deps = [":service-routing-branch-packaged-bin"],
)
fx_component_manifest(
name = "echo-service-client-manifest",
testonly = True,
component_name = "echo-service-client",
includes = ["//sdk/lib/syslog:client.shard"],
manifest = "meta/echo-service-client.cml",
)
fx_component(
name = "echo-service-client",
testonly = True,
compiled_manifest = ":echo-service-client-manifest",
deps = [":service-routing-client-packaged-bin"],
)
fx_component_manifest(
name = "multi-instance-echo-provider-manifest",
testonly = True,
component_name = "multi-instance-echo-provider",
includes = ["//sdk/lib/syslog:client.shard"],
manifest = "meta/multi-instance-echo-provider.cml",
)
fx_component(
name = "multi-instance-echo-provider",
testonly = True,
compiled_manifest = ":multi-instance-echo-provider-manifest",
deps = [":multi_instance_echo_service_packaged_bin"],
)
fx_component_manifest(
name = "service-routing-test-manifest",
testonly = True,
component_name = "service-routing-test",
includes = [
"//sdk/lib/inspect:offer.shard",
"//sdk/lib/sys/component:realm_builder.shard",
"//sdk/lib/syslog:client.shard",
"//src/sys/test_runners/rust:default.shard.cml",
],
manifest = "meta/service-routing-test.cml",
)
fx_test_component(
name = "service-routing-test",
compiled_manifest = ":service-routing-test-manifest",
deps = [":service-routing-test-packaged-bin"],
)
fx_component_manifest(
name = "filtered-service-routing-test-manifest",
testonly = True,
component_name = "filtered-service-routing-test",
includes = [
"//sdk/lib/inspect:offer.shard",
"//sdk/lib/sys/component:realm_builder.shard",
"//sdk/lib/syslog:client.shard",
"//src/sys/test_runners/rust:default.shard.cml",
],
manifest = "meta/filtered-service-routing-test.cml",
)
fx_test_component(
name = "filtered-service-routing-test",
compiled_manifest = ":filtered-service-routing-test-manifest",
deps = [":filtered-service-routing-test-packaged-bin"],
)
fx_package(
name = "component-manager-services-tests-package",
package_name = "component-manager-services-tests",
components = [
":echo-service-client",
":multi-instance-echo-provider",
":service-routing-branch-onecoll",
":service-routing-branch-twocoll",
"//src/lib/fuchsia-component-test/realm_builder_server:realm_builder_server_component",
"//src/sys/component_manager:component-manager-realm-builder-cmp",
"//src/sys/component_manager/testing/services_provider:provider-a-cmp",
"//src/sys/component_manager/testing/services_provider:provider-b-cmp",
],
test_components = [
":service-routing-test",
":filtered-service-routing-test",
],
)
fx_test(
name = "component-manager-services-tests",
package = ":component-manager-services-tests-package",
visibility = ["//src/sys/component_manager:__pkg__"],
)