# 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/rust/rustc_binary.gni")
import("//src/sys/build/components.gni")

rustc_test("test") {
  name = "tun_example"
  edition = "2018"
  deps = [
    "//sdk/fidl/fuchsia.hardware.network:fuchsia.hardware.network-rustc",
    "//sdk/fidl/fuchsia.net:fuchsia.net-rustc",
    "//sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces-rustc",
    "//sdk/fidl/fuchsia.net.stack:fuchsia.net.stack-rustc",
    "//sdk/fidl/fuchsia.net.tun:fuchsia.net.tun-rustc",
    "//src/connectivity/lib/net-declare",
    "//src/connectivity/lib/net-types",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/network/fidl_fuchsia_net_interfaces_ext",
    "//src/lib/network/packet",
    "//src/lib/network/packet-formats",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]
  sources = [ "src/lib.rs" ]
}

fuchsia_component("tun-rust-example") {
  testonly = true
  manifest = "meta/tun-rust-example.cmx"
  deps = [ ":test" ]
}

fuchsia_test_package("examples") {
  package_name = "network-tun-examples"
  test_components = [ ":tun-rust-example" ]
  deps = [
    "//src/connectivity/network/netstack:component-debug",
    "//src/connectivity/network/tun/network-tun:component",
  ]
}
