# 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.gni")
import("//zircon/system/ulib/devmgr-integration-test/isolated_devmgr.gni")

test("zxcrypt") {
  output_name = "zxcrypt-test"
  sources = [
    "main.c",
    "test-device.cc",
    "volume.cc",
    "zxcrypt.cc",
  ]

  deps = [
    "//sdk/fidl/fuchsia.device:fuchsia.device_llcpp",
    "//sdk/fidl/fuchsia.hardware.ramdisk:fuchsia.hardware.ramdisk_c",
    "//sdk/lib/fdio",
    "//src/lib/ddk",
    "//src/security/zxcrypt:zxcrypt-fdio",
    "//src/storage/fvm",
    "//third_party/boringssl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/pretty",
    "//zircon/public/lib/zircon-internal",
    "//zircon/public/lib/zx",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/block-client",
    "//zircon/system/ulib/devmgr-integration-test",
    "//zircon/system/ulib/digest",
    "//zircon/system/ulib/fdio-caller",
    "//zircon/system/ulib/fs",
    "//zircon/system/ulib/fs-management",
    "//zircon/system/ulib/fzl",
    "//zircon/system/ulib/gpt",
    "//zircon/system/ulib/kms-stateless",
    "//zircon/system/ulib/ramdevice-client",
  ]
}

isolated_devmgr_unittest_package("zxcrypt-test") {
  executable_path = "test/zxcrypt-test"

  deps = [
    ":zxcrypt",
    "//src/devices/block/drivers/core",
    "//src/devices/block/drivers/ramdisk",
    "//src/devices/block/drivers/zxcrypt",
    "//src/devices/tests/sysdev",
    "//src/storage/fvm/driver",
  ]
}
