# 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.

executable("integration_tests") {
  testonly = true
  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:client",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/zx",
  ]
}
