# Copyright 2020 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/fuchsia_unittest_package.gni")

executable("async-watchdog-unittests") {
  testonly = true

  sources = [ "watchdog_unittest.cc" ]

  deps = [
    "//sdk/lib/sys/cpp",
    "//src/lib/async-watchdog",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/testing/loop_fixture",
    "//src/lib/testing/loop_fixture",
    "//zircon/system/ulib/async:async-cpp",
    "//zircon/system/ulib/async-default",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
    "//zircon/system/ulib/zx",
  ]
}

fuchsia_unittest_package("unittests") {
  package_name = "async-watchdog-unittests"
  component_name = "async-watchdog-unittests"
  deps = [ ":async-watchdog-unittests" ]
  manifest = "meta/async-watchdog-unittests.cml"
}
