# 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/test/test_package.gni")

group("mpsc_queue") {
  public_deps = [ ":mpsc_queue_sources" ]
}

group("tests") {
  testonly = true
  deps = [ ":mpsc_queue_unittests" ]
}

source_set("mpsc_queue_sources") {
  public = [ "mpsc_queue.h" ]

  public_deps = [
    "//src/lib/fxl",
    "//zircon/public/lib/zx",
  ]
}

executable("mpsc_queue_unittest_bin") {
  output_name = "mpsc_queue_unittests"

  testonly = true

  sources = [ "mpsc_queue_unittests.cc" ]

  deps = [
    ":mpsc_queue",
    "//src/lib/fxl/test:gtest_main",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
  ]
}

test_package("mpsc_queue_unittests") {
  deps = [ ":mpsc_queue_unittest_bin" ]

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