# 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/components.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.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" ]
}

fuchsia_unittest_package("waitgroup_tests") {
  deps = [ ":waitgroup_lib_test" ]
}
