# 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 = [ "//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/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

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

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