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

group("tests") {
  testonly = true
  deps = [ ":ftl-library-test" ]
}

test("ftl-test") {
  output_name = "ftl-library-test"
  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_test.cc",
    "ndm_driver_test.cc",
    "ndm_test.cc",
  ]
  deps = [
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/ftl",
    "//zircon/system/ulib/ftl:private_headers",
  ]
  defines = [ "NDM_DEBUG" ]
}

fuchsia_unittest_package("ftl-library-test") {
  deps = [ ":ftl-test" ]
}
