# Copyright 2017 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.gni")

test("integration_tests") {
  output_name = "debug_agent_integration_tests"

  # Helper classes.
  sources = [
    "message_loop_wrapper.cc",
    "message_loop_wrapper.h",
    "so_wrapper.cc",
    "so_wrapper.h",
  ]

  # The actual tests.
  sources += [
    "breakpoint_test.cc",
    "debugged_job_test.cc",
    "dynamic_loader.cc",
    "multithreaded_breakpoint_test.cc",
    "watchpoint_test.cc",

    # TODO(fxbug.dev/5753): Some HW capabilities (like HW breakpoints) are not well
    #               emulated by QEMU without KVM. This will sometimes make tests
    #               fail or even crash QEMU.
    #               The tests will be re-enabled when there is way to express
    #               that these test must not run on QEMU.
    #"write_registers_test.cc",
  ]

  deps = [
    "//sdk/lib/sys/cpp",
    "//src/developer/debug/debug_agent:test_lib",
    "//src/developer/debug/ipc",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/zx",
  ]

  # TODO(https://fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
