# Copyright 2018 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/dart/dart_library.gni")
import("//build/dart/dart_test_component.gni")

dart_library("gidl") {
  package_name = "sdk.dart.lib.gidl"
  sources = [
    "gidl.dart",
    "handles.dart",
  ]

  deps = [
    "//sdk/dart/fidl",
    "//sdk/dart/zircon",
    "//third_party/dart-pkg/pub/test",
  ]
}

dart_test_component("gidl-library-test") {
  manifest = "meta/gidl-library-test.cmx"
  sources = [ "handles_test.dart" ]
  deps = [
    ":gidl",
    "//sdk/dart/zircon",
    "//third_party/dart-pkg/pub/test",
  ]
}

fuchsia_test_package("test_package") {
  package_name = "gidl-library-test"
  test_components = [ ":gidl-library-test" ]
}

group("tests") {
  testonly = true
  deps = [ ":test_package" ]
}
