blob: e58eec77d9a52b12d9ee7483d17dd4a9fcf19210 [file] [log] [blame]
# Copyright 2024 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.
import("//build/components.gni")
import("//build/rust/rustc_library.gni")
declare_args() {
# Whether or not tracing is enabled for storage.
storage_enable_tracing = false
}
template("storage_trace") {
rustc_library(target_name) {
name = invoker.name
edition = "2021"
sources = [ "src/lib.rs" ]
visibility = invoker.visibility
with_unit_tests = true
test_deps = [ "//src/lib/fuchsia" ]
testonly = invoker.testonly
if (invoker.enable_tracing) {
deps = [ "//src/lib/trace/rust:trace" ]
features = [ "tracing" ]
sources += [ "src/fuchsia.rs" ]
} else {
sources += [ "src/noop.rs" ]
}
}
}
storage_trace("trace") {
name = "storage_trace"
enable_tracing = is_fuchsia && storage_enable_tracing
visibility = [ "//src/storage/*" ]
testonly = false
}
storage_trace("trace-enabled") {
name = "storage_trace_enabled"
enable_tracing = true
visibility = [ ":*" ]
testonly = true
}
storage_trace("trace-disabled") {
name = "storage_trace_disabled"
enable_tracing = false
visibility = [ ":*" ]
testonly = true
}
fuchsia_unittest_component("storage-trace-enabled-tests") {
deps = [ ":trace-enabled_test" ]
}
fuchsia_unittest_component("storage-trace-disabled-tests") {
deps = [ ":trace-disabled_test" ]
}
fuchsia_test_package("storage-trace-tests") {
test_components = [
":storage-trace-enabled-tests",
":storage-trace-disabled-tests",
]
}
group("tests") {
testonly = true
deps = [
":storage-trace-tests",
":trace_test($host_toolchain)",
]
}