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

fuchsia_unittest_package("inspect-cpp-unittest") {
  deps = [ ":inspect" ]
}

group("tests") {
  testonly = true
  deps = [ ":inspect-cpp-unittest" ]
}

test("inspect") {
  sources = [
    "health_unittest.cc",
    "heap_unittest.cc",
    "inspect_unittest.cc",
    "lazy_unittest.cc",
    "node_unittest.cc",
    "reader_unittest.cc",
    "scanner_unittest.cc",
    "snapshot_unittest.cc",
    "state_unittest.cc",
    "value_list_unittest.cc",
  ]

  deps = [
    "//sdk/lib/fit-promise",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/fzl",
    "//zircon/system/ulib/inspect",
    "//zircon/system/ulib/pretty",
    "//zircon/system/ulib/zxtest",
  ]
}

fuchsia_library_fuzzer("inspect-reader-fuzzer") {
  sources = [ "reader_fuzzer.cc" ]
  deps = [ "//zircon/system/ulib/inspect" ]
}
