# 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")

group("ftl-mtd") {
  testonly = true

  deps = [ ":ftl-volume-wrapper-integration" ]
}

test("ftl-volume-wrapper-integration") {
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  if (is_fuchsia) {
    fdio_config = [ "//build/config/fuchsia:fdio_config" ]
    if (configs + fdio_config - fdio_config != configs) {
      configs -= fdio_config
    }
  }
  sources = [ "ftl-volume-wrapper-integration-tests.cc" ]

  deps = [
    "//src/storage/fvm/host",
    "//zircon/public/lib/zxtest",
    "//zircon/system/ulib/ftl-mtd",
    "//zircon/system/ulib/mtd",
  ]
}
