# 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.

group("storage") {
  deps = [
    "ext4",
    "lib",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "benchmarks:tests",
    "bin:tests",
    "blackout:tests",
    "blobfs:tests",
    "conformance:tests",
    "ext4:tests",
    "f2fs:tests",
    "factory:tests",
    "fshost:tests",
    "fuchsia-fatfs:tests",
    "fuzzers:tests",
    "fvm:tests",
    "fxfs:tests",
    "fxfs-crypt:tests",
    "gpt:tests",
    "host_fs_test:tests",
    "lib:tests",
    "memfs:tests",
    "minfs:tests",
    "stress-tests",
    "stressor:tests",
    "testing:tests",
    "tools:tests",
    "type-fprint:tests",
    "volume_image:tests",
  ]
}

# a set of storage tools useful for development and debugging
group("tools") {
  deps = [
    "factory/export_ffs:export-ffs",
    "fxfs/tools",
    "tools",
    "volume_image/ftl:ftl-volume-extractor-host",
    "volume_image/ftl:nandoob-converter-host",
  ]
}
