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

if (is_host) {
  source_set("host_tests") {
    testonly = true

    sources = [
      "bti_test.cc",
      "cache_test.cc",
      "channel_decoded_test.cc",
      "channel_test.cc",
      "clock_test.cc",
      "cprng_test.cc",
      "debug_trace_test.cc",
      "display_stack_test.cc",
      "event_test.cc",
      "exception_test.cc",
      "fifo_test.cc",
      "framebuffer_test.cc",
      "futex_test.cc",
      "guest_test.cc",
      "handle_info_test.cc",
      "handle_test.cc",
      "interception_workflow_test.cc",
      "interrupt_test.cc",
      "iommu_test.cc",
      "ioports_test.cc",
      "job_test.cc",
      "object_test.cc",
      "pager_test.cc",
      "pc_test.cc",
      "pci_test.cc",
      "pmt_test.cc",
      "port_test.cc",
      "process_test.cc",
      "profile_test.cc",
      "proto_event_test.cc",
      "resource_test.cc",
      "smc_test.cc",
      "socket_test.cc",
      "startup_test.cc",
      "system_test.cc",
      "task_test.cc",
      "test_library.cc",
      "thread_test.cc",
      "ticks_test.cc",
      "timer_test.cc",
      "vcpu_test.cc",
      "vmar_test.cc",
      "vmo_test.cc",
    ]

    deps = [
      "//src/developer/debug/ipc:client",
      "//src/developer/debug/zxdb/client:test_support",
      "//src/lib/fidl_codec",
      "//third_party/googletest:gtest",
      "//third_party/protobuf:protobuf_full",
      "//tools/fidlcat/lib:host_lib",
      "//tools/fidlcat/lib:session_proto",
      "//zircon/public/lib/fidl_base",
      "//zircon/system/public",

      # TODO(fxbug.dev/57392): Move it back to //third_party once unification completes.
      "//zircon/third_party/rapidjson",
    ]
  }
}
