blob: 84b4076dfee190beb9f6ace05e4922fdeb853447 [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/platforms:constraints.bzl", "HOST_OS_CONSTRAINTS")
load("//build/bazel/rules/cc:fx_cc_library.bzl", "fx_cc_library")
load("//build/bazel/rules/cc:fx_cc_test_binary.bzl", "fx_cc_test_binary")
load("//build/bazel/rules/host_tests:host_rustc_test.bzl", "host_rustc_test")
load("//build/bazel/rules/host_tests:host_test.bzl", "host_test")
load("//build/bazel/rules/packages:fx_package.bzl", "fx_package")
load("//build/bazel/rules/rust:rustc_library.bzl", "rustc_library")
load("//build/bazel/rules/rust:rustc_test.bzl", "rustc_test")
load("//build/bazel/rules/testing:fx_test.bzl", "fx_test")
load("//build/bazel/rules/testing:fx_unittest_component.bzl", "fx_unittest_component")
package(default_applicable_licenses = ["//:license"])
test_suite(
name = "tests",
tests = [":storage_trace_tests"],
visibility = ["//src/storage:__pkg__"],
)
test_suite(
name = "host_tests",
tests = [
":storage_trace_cpp_host_test",
":storage_trace_host_test",
],
visibility = ["//src/storage:__pkg__"],
)
rustc_library(
name = "trace",
srcs = ["src/lib.rs"] + select({
"@platforms//os:fuchsia": [],
"//conditions:default": ["src/noop.rs"],
}),
crate_features = select({
"@platforms//os:fuchsia": ["tracing"],
"//conditions:default": [],
}),
crate_name = "storage_trace",
edition = "2024",
visibility = ["//src/storage:__subpackages__"],
deps = select({
"@platforms//os:fuchsia": ["//src/lib/trace/rust:trace"],
"//conditions:default": [],
}),
)
host_rustc_test(
name = "storage_trace_host_test",
crate = ":trace",
crate_features = select({
"@platforms//os:fuchsia": ["tracing"],
"//conditions:default": [],
}),
crate_name = "storage_trace_lib_test",
deps = ["//src/lib/fuchsia"],
)
rustc_library(
name = "storage_trace_enabled_rust",
testonly = True,
srcs = ["src/lib.rs"],
crate_features = ["tracing"],
edition = "2024",
target_compatible_with = ["@platforms//os:fuchsia"],
deps = ["//src/lib/trace/rust:trace"],
)
rustc_test(
name = "storage_trace_enabled_rust_test",
crate = ":storage_trace_enabled_rust",
crate_features = ["tracing"],
tags = ["manual"],
target_compatible_with = ["@platforms//os:fuchsia"],
deps = ["//src/lib/fuchsia"],
)
fx_unittest_component(
name = "storage_trace_enabled_rust_test_component",
binary = ":storage_trace_enabled_rust_test",
)
rustc_library(
name = "storage_trace_disabled_rust",
testonly = True,
srcs = [
"src/lib.rs",
"src/noop.rs",
],
edition = "2024",
)
rustc_test(
name = "storage_trace_disabled_rust_test",
crate = ":storage_trace_disabled_rust",
tags = ["manual"],
target_compatible_with = ["@platforms//os:fuchsia"],
deps = ["//src/lib/fuchsia"],
)
fx_unittest_component(
name = "storage_trace_disabled_rust_test_component",
binary = ":storage_trace_disabled_rust_test",
)
fx_cc_library(
name = "storage_trace_enabled_cpp",
srcs = ["trace_enabled.cc"],
hdrs = ["trace_enabled.h"],
target_compatible_with = ["@platforms//os:fuchsia"],
deps = [
"//zircon/system/ulib/trace",
],
alwayslink = True,
)
fx_cc_library(
name = "storage_trace_disabled_cpp",
hdrs = ["trace_disabled.h"],
deps = ["//zircon/system/ulib/fbl"],
alwayslink = True,
)
fx_cc_library(
name = "cpp",
hdrs = ["trace.h"],
defines = select({
"@platforms//os:fuchsia": ["STORAGE_ENABLE_TRACING"],
"//conditions:default": [],
}),
public_configs = select({
"@platforms//os:fuchsia": [":enable_tracing"],
"//conditions:default": [],
}),
visibility = ["//src/storage:__subpackages__"],
deps = select({
"@platforms//os:fuchsia": [":storage_trace_enabled_cpp"],
"//conditions:default": [":storage_trace_disabled_cpp"],
}),
alwayslink = True,
)
fx_cc_test_binary(
name = "storage_trace_cpp_test",
srcs = ["trace_test.cc"],
deps = [
":cpp",
"//src/lib/fxl/test:gtest_main",
"//zircon/system/ulib/fbl",
"@com_google_googletest//:gtest",
],
)
host_test(
name = "storage_trace_cpp_host_test",
binary = ":storage_trace_cpp_test",
target_compatible_with = HOST_OS_CONSTRAINTS,
)
fx_cc_library(
name = "storage_trace_force_enabled_cpp",
testonly = True,
hdrs = ["trace.h"],
defines = ["STORAGE_ENABLE_TRACING"],
public_configs = [":enable_tracing"],
target_compatible_with = ["@platforms//os:fuchsia"],
deps = [":storage_trace_enabled_cpp"],
alwayslink = True,
)
fx_cc_test_binary(
name = "storage_trace_enabled_cpp_test",
srcs = ["trace_test.cc"],
target_compatible_with = ["@platforms//os:fuchsia"],
deps = [
":storage_trace_force_enabled_cpp",
"//src/lib/fxl/test:gtest_main",
"//zircon/system/ulib/fbl",
"@com_google_googletest//:gtest",
],
)
fx_unittest_component(
name = "storage_trace_enabled_cpp_test_component",
binary = ":storage_trace_enabled_cpp_test",
component_name = "storage_trace_enabled_cpp_test",
)
fx_cc_library(
name = "storage_trace_force_disabled_cpp",
testonly = True,
hdrs = ["trace.h"],
deps = [":storage_trace_disabled_cpp"],
alwayslink = True,
)
fx_cc_test_binary(
name = "storage_trace_disabled_cpp_test",
srcs = ["trace_test.cc"],
deps = [
":storage_trace_force_disabled_cpp",
"//src/lib/fxl/test:gtest_main",
"//zircon/system/ulib/fbl",
"@com_google_googletest//:gtest",
],
)
fx_unittest_component(
name = "storage_trace_disabled_cpp_test_component",
binary = ":storage_trace_disabled_cpp_test",
component_name = "storage_trace_disabled_cpp_test",
)
fx_package(
name = "storage_trace_tests_pkg",
package_name = "storage_trace_tests",
test_components = [
":storage_trace_enabled_rust_test_component",
":storage_trace_disabled_rust_test_component",
":storage_trace_enabled_cpp_test_component",
":storage_trace_disabled_cpp_test_component",
],
)
fx_test(
name = "storage_trace_tests",
package = ":storage_trace_tests_pkg",
)