# 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/fidl/fidl.gni")
import("//build/test.gni")

test("fidl-utils") {
  output_name = "fidl-utils-test"
  if (is_fuchsia) {
    fdio_config = [ "//build/config/fuchsia:fdio_config" ]
    if (configs + fdio_config - fdio_config != configs) {
      configs -= fdio_config
    }
  }
  sources = [ "binding_tests.cc" ]
  deps = [
    ":fidl.test.fidlutils_c",
    "//sdk/lib/fdio",
    "//zircon/system/ulib/fidl-utils",
    "//zircon/system/ulib/zxtest",
  ]

  # TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
  # Consider switching to the C++ bindings. See linked bug for details.
  configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}

fidl("fidl.test.fidlutils") {
  visibility = [ ":*" ]
  sources = [ "binding_tests.fidl" ]
}

fuchsia_unittest_package("fidl-utils-test-pkg") {
  package_name = "fidl-utils-test"
  deps = [ ":fidl-utils" ]
}

group("tests") {
  testonly = true
  deps = [ ":fidl-utils-test-pkg" ]
}
