# Copyright 2019 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("//src/developer/ffx/build/ffx_plugin.gni")

group("blackout") {
  testonly = true
  public_deps = [
    "blobfs-checkerboard",
    "minfs-tree",
  ]
}

ffx_plugin("ffx_storage_blackout") {
  version = "0.1.0"
  edition = "2021"

  args_sources = [ "src/args.rs" ]

  plugin_deps = [
    "blackout-host/ffx:ffx_storage_blackout_step",
    "blackout-integration:ffx_storage_blackout_integration",
    "blobfs-checkerboard:ffx_storage_blackout_blobfs_checkerboard",
    "minfs-tree:ffx_storage_blackout_minfs_tree",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    "blackout-host:tests",
    "blackout-integration:tests",
    "blackout-target:tests",
  ]
}

# the integration group enables the rust test harness version of the power failure tests. this group
# shouldn't be included in normal test targets - they are intended to be run under specific
# conditions in CI as opposed to for every change in CQ or being run locally.
group("integration") {
  testonly = true
  public_deps = [ "blobfs-checkerboard:integration" ]
}
