# Copyright 2019 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/test.gni")

group("test") {
  testonly = true
  deps = [ ":logger-unit" ]
}

test("logger-unit") {
  output_name = "logger-unit-test"
  sources = [ "logger-test.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.driver.test:fuchsia.driver.test_cpp",
    "//sdk/lib/fdio",
    "//sdk/lib/fidl",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/driver-unit-test",
    "//zircon/system/ulib/zxtest",
  ]
}

fuchsia_unittest_package("logger-unit-test-pkg") {
  package_name = "logger-unit-test"
  deps = [ ":logger-unit" ]
}

group("tests") {
  testonly = true
  deps = [ ":logger-unit-test-pkg" ]
}
