# 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/package/component.gni")
import("//build/package.gni")


executable("bin") {
  output_name = "inspect_unittests"
  testonly = true
  sources = [
    "expose_unittest.cc",
  ]
  deps = [
    "//garnet/public/lib/component/cpp",
  ]
  public_deps = [
    "//garnet/public/lib/fxl/test:gtest_main",
    "//third_party/googletest:gmock",
  ]
  libs = [ "zircon" ]
}

fuchsia_test_component("inspect_unittests_component") {
  deps = [
    ":bin",
  ]

  binary = "inspect_unittests"
}

package("inspect_unittests") {
  testonly = true
  components = [ ":inspect_unittests_component" ]
}
