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

test("mtd") {
  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 = [ "mtd-interface-tests.cc" ]

  deps = [ "//zircon/public/lib/zxtest" ]

  if (current_os == "linux") {
    # This library requires an environment with mtd/mtd-user.h and MTD support.
    # Currently, Linux is the only OS with that support.
    deps += [ "//zircon/system/ulib/mtd" ]
  }

  if (current_cpu == "arm64") {
    defines = [ "ASTRO" ]
  }
}
