# 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" ]
}

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

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

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