# 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/package.gni")
import("//build/test.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

test("stream_cpp_unittests") {
  sources = [ "log_message_unittest.cc" ]
  deps = [
    "//garnet/public/lib/gtest",
    "//src/lib/diagnostics/stream/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gmock",
  ]
}

test_package("stream-cpp-tests") {
  deps = [ ":stream_cpp_unittests" ]

  tests = [
    {
      log_settings = {
        max_severity = "ERROR"
      }
      name = "stream_cpp_unittests"
      environments = basic_envs
    },
  ]
}

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