# Copyright 2019 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_library.gni")
import("//build/rust/rustc_test.gni")
import("//build/test/test_package.gni")

group("tests") {
  testonly = true

  deps = [ ":waitgroup_tests" ]
}

rustc_library("waitgroup") {
  name = "waitgroup"
  edition = "2018"
  deps = [ "//third_party/rust_crates:futures" ]

  sources = [ "src/lib.rs" ]
}

rustc_test("waitgroup_lib_test") {
  edition = "2018"
  source_root = "src/test.rs"
  deps = [
    ":waitgroup",
    "//src/lib/fuchsia-async",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "src/test.rs" ]
}

test_package("waitgroup_tests") {
  deps = [ ":waitgroup_lib_test" ]

  tests = [
    {
      name = "waitgroup_lib_test"
      environments = basic_envs
    },
  ]
}
