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

executable("netstack_integration_test") {
  testonly = true

  sources = [
    "netstack_add_eth_test.cc",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.netstack",
    "//garnet/public/lib/component/cpp/testing",
    "//third_party/googletest:gtest_main",
    "//zircon/public/banjo/ddk-protocol-ethernet",
    "//zircon/public/fidl/fuchsia-net-stack",
    "//zircon/public/fidl/zircon-ethernet",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/zx",
  ]
}

test_package("netstack_integration_tests") {
  deps = [
    ":netstack_integration_test",
  ]

  tests = [
    {
      name = "netstack_integration_test"
    },
  ]
}
