# 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("//build/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

rustc_library("tcp-stream-ext") {
  name = "tcp_stream_ext"
  edition = "2018"
  version = "0.1.0"
  with_unit_tests = true
  deps = [
    "//third_party/rust_crates:libc",
    "//third_party/rust_crates:thiserror",
  ]
  test_deps = [
    "//third_party/rust_crates:matches",
    "//third_party/rust_crates:proptest",
  ]
}

rustc_test("stub-netstack-test") {
  name = "stub_netstack_test"
  source_root = "src/stub_netstack_test.rs"
  edition = "2018"
  deps = [
    ":tcp-stream-ext",
    "//third_party/rust_crates:matches",
  ]
}

rustc_binary("stub-netstack") {
  name = "stub_netstack"
  source_root = "src/stub_netstack.rs"
  edition = "2018"
  deps = [
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:libc",
    "//zircon/system/fidl/fuchsia-io:fuchsia-io-rustc",
    "//zircon/system/fidl/fuchsia-posix-socket:fuchsia-posix-socket-rustc",
  ]
}

test_package("tcp-stream-ext-tests") {
  deps = [
    ":stub-netstack",
    ":stub-netstack-test",
    ":tcp-stream-ext_test",
  ]
  binaries = [
    {
      name = "stub_netstack"
    },
  ]
  meta = [
    {
      path = "meta/stub_netstack.cmx"
      dest = "stub_netstack.cmx"
    },
  ]
  tests = [
    {
      name = "tcp_stream_ext_lib_test"
      environments = [ qemu_env ]
    },
    {
      name = "stub_netstack_test"
      environments = [ qemu_env ]
    },
  ]
}

group("tests") {
  testonly = true
  deps = [ ":tcp-stream-ext-tests" ]
}
