# 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("//build/test/test_package.gni")
import("//build/testing/environments.gni")

group("storage") {
  deps = [
    "fs_management",
    "pseudo-fs",
    "ramdevice_client",
    "vfs/rust:vfs",
  ]
}

group("tests") {
  testonly = true

  deps = [
    ":vfs_tests",
    "fs_management:tests",
    "ramdevice_client:tests",
    "vfs/rust/macros:tests",
  ]
}

test_package("vfs_tests") {
  deps = [
    "fuchsia-vfs-watcher:fuchsia-vfs-watcher_test",
    "fuchsia-watch:fuchsia-watch_test",
    "pseudo-fs:pseudo-fs_test",
    "vfs/rust:vfs_test",
  ]

  tests = [
    {
      name = "fuchsia_vfs_watcher_lib_test"
      dest = "fuchsia_vfs_watcher_test"
      environments = basic_envs
    },
    {
      name = "fuchsia_vfs_pseudo_fs_lib_test"
      dest = "fuchsia_vfs_pseudo_fs_test"
      environments = basic_envs
    },
    {
      name = "vfs_lib_test"
      dest = "vfs_test"
      environments = basic_envs
    },
    {
      name = "fuchsia_watch_lib_test"
      dest = "fuchsia_watch_test"
      environments = basic_envs
    },
  ]
}
