# 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/go/go_library.gni")
import("//build/go/go_test.gni")

group("src") {
  testonly = true
  deps = [
    ":logs_integration_go_tests",
    ":logs_integration_go_tests_lib",
  ]
}

go_library("logs_integration_go_tests_lib") {
  name = "logs_integration_tests"

  deps = [
    "//src/lib/component",
    "//src/lib/syslog/go",
  ]
}

go_test("logs_integration_go_tests") {
  gopackages = [ "logs_integration_tests" ]
  deps = [ ":logs_integration_go_tests_lib" ]
}
