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

group("tests") {
  testonly = true
  deps = [ ":fuchsia-diagnostic-streams-unittests($host_toolchain)" ]
}

dart_library("fuchsia_diagnostic_streams") {
  package_name = "fuchsia_diagnostic_streams"

  source_dir = "lib"

  sources = [
    "src/internal/bitfield64.dart",
    "src/internal/header.dart",
    "src/write.dart",
    "streams.dart",
  ]

  deps = [ "//sdk/fidl/fuchsia.diagnostics.stream" ]
}

dart_test("fuchsia-diagnostic-streams-unittests") {
  sources = [
    "internal/bitfield64_test.dart",
    "write_test.dart",
  ]

  deps = [
    ":fuchsia_diagnostic_streams",
    "//sdk/fidl/fuchsia.diagnostics",
    "//sdk/fidl/fuchsia.diagnostics.stream",
    "//third_party/dart-pkg/pub/test",
  ]
}
