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

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

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

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

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

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