# 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/components.gni")
import("//build/test.gni")
import("//src/storage/testing/isolated_devmgr.gni")

test("ramdisk") {
  output_name = "ramdisk-test"
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [ "ramdisk.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_c",
    "//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_c",
    "//sdk/fidl/fuchsia.hardware.ramdisk:fuchsia.hardware.ramdisk_c",
    "//sdk/lib/fdio",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/isolated_devmgr/v2_component:client",
    "//src/lib/storage/fs_management",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/block-client",
    "//zircon/system/ulib/fdio-caller",
    "//zircon/system/ulib/fzl",
    "//zircon/system/ulib/ramdevice-client",
  ]
}

storage_isolated_devmgr_unittest_v2_component("ramdisk-test") {
  executable_path = "test/ramdisk-test"

  deps = [
    ":ramdisk",
    "//src/devices/block/drivers/core",
    "//src/devices/block/drivers/ramdisk",
    "//src/devices/misc/drivers/test",
    "//src/devices/tests/sysdev",
  ]
}

fuchsia_test_package("ramdisk-tests") {
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
  test_components = [ ":ramdisk-test" ]
}

group("tests") {
  testonly = true
  deps = [
    ":ramdisk-tests",
    "//src/storage/testing:storage-isolated-devmgr",
  ]
}
