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

go_library("dns") {
  deps = [
    "//sdk/fidl/fuchsia.net.name:fuchsia.net.name_go($go_toolchain)",
    "//src/connectivity/network/netstack/sync",
    "//src/lib/syslog/go",
    "//third_party/golibs:github.com/google/go-cmp",
    "//third_party/golibs:gvisor.dev/gvisor",
  ]

  sources = [
    "servers_config.go",
    "servers_config_test.go",
  ]
}

go_test("dns_test") {
  library = ":dns"
}

fuchsia_unittest_package("netstack-dns-gotests") {
  deps = [ ":dns_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":netstack-dns-gotests" ]
}
