blob: 6c11a5a70493401a7a82264db683a59634fb6b83 [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",
)
load(
"//build/bazel/rules/components:structured_config.bzl",
"fuchsia_structured_config_rust_lib",
)
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_unittest_package.bzl",
"fx_unittest_package",
)
package(default_applicable_licenses = ["//:license"])
rustc_binary(
name = "bin",
srcs = [
"src/bound.rs",
"src/constants.rs",
"src/datatypes.rs",
"src/diagnostics/cobalt.rs",
"src/diagnostics/composite.rs",
"src/diagnostics/fake.rs",
"src/diagnostics/inspect.rs",
"src/diagnostics/mod.rs",
"src/httpsdate.rs",
"src/main.rs",
"src/sampler.rs",
],
crate_name = "httpsdate_time_source",
edition = "2024",
proc_macro_deps = [
"//third_party/rust_crates/vendor:async-trait",
],
deps = [
":httpsdate_config",
"//sdk/fidl/fuchsia.metrics:fuchsia.metrics_rust",
"//sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_rust",
"//sdk/fidl/fuchsia.time.external:fuchsia.time.external_rust",
"//sdk/rust/zx",
"//src/lib/cobalt/rust/builders",
"//src/lib/diagnostics/inspect/runtime/rust",
"//src/lib/diagnostics/inspect/rust:fuchsia-inspect",
"//src/lib/fidl/rust/fidl",
"//src/lib/fidl/rust/fidl-contrib",
"//src/lib/fuchsia",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-runtime",
"//src/lib/fuchsia-sync",
"//src/lib/network/fidl_fuchsia_net_interfaces_ext",
"//src/sys/time/lib/httpdate-hyper",
"//src/sys/time/lib/pull-source",
"//src/sys/time/lib/push-source",
"//src/sys/time/lib/time_metrics_registry",
"//third_party/cobalt/src/lib/client/rust:cobalt-client",
"//third_party/rust_crates/vendor:anyhow",
"//third_party/rust_crates/vendor:futures",
"//third_party/rust_crates/vendor:hyper",
"//third_party/rust_crates/vendor:log",
"//third_party/rust_crates/vendor:rand",
],
)
rustc_test(
name = "httpsdate_time_source_bin_test",
crate = ":bin",
edition = "2024",
deps = [
"//src/lib/diagnostics/testing/diagnostics-assertions/rust:diagnostics-assertions",
"//third_party/rust_crates/vendor:assert_matches",
],
)
fx_unittest_package(
name = "httpsdate-time-source-tests",
max_log_severity = "ERROR",
unit_tests = [":httpsdate_time_source_bin_test"],
visibility = ["//src/sys:__pkg__"],
)
fx_packaged_binary(
name = "bin_packaged_bin",
binary = ":bin",
binary_name = "httpsdate_time_source",
)
fx_component_manifest(
name = "manifest",
component_name = "httpsdate_time_source",
includes = [
"//sdk/lib/inspect:client.shard",
"//sdk/lib/syslog:client.shard",
"//src/connectivity/network/lib/net_interfaces:client.shard",
"//src/lib/fuchsia-hyper:hyper.shard",
],
manifest = "meta/service.cml",
)
fx_component(
name = "service",
compiled_manifest = ":manifest",
visibility = ["//src/sys/time/httpsdate_time_source/tests:__pkg__"],
deps = [":bin_packaged_bin"],
)
fuchsia_structured_config_rust_lib(
name = "httpsdate_config",
cm_label = ":manifest",
)