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

group("streams") {
  testonly = true
  deps = [ ":streams-encoder" ]
}

group("tests") {
  testonly = true
  deps = [ ":streams-cpp-tests" ]
}

sdk_source_set("streams-encoder") {
  category = "internal"
  sdk_name = "streams_encoder"

  sources = [
    "encode.cc",
    "encode.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.diagnostics.stream:fuchsia.diagnostics.stream",
    "//zircon/system/ulib/zx",
  ]

  deps = []
}

test("streams-encoder-test") {
  testonly = true
  sources = [ "streams_encoder_unittest.cc" ]
  deps = [
    ":streams-encoder",
    "//third_party/googletest:gtest",
  ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

fuchsia_unittest_package("streams-cpp-tests") {
  manifest = "meta/streams-encoder-test.cml"
  deps = [ ":streams-encoder-test" ]
}
