| # 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)", |
| ] |
| } |