# Copyright 2020 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")

static_library("debug_adapter") {
  sources = [
    "context.cc",
    "context.h",
    "handlers/request_attach.cc",
    "handlers/request_attach.h",
    "handlers/request_breakpoint.cc",
    "handlers/request_breakpoint.h",
    "handlers/request_continue.cc",
    "handlers/request_continue.h",
    "handlers/request_launch.cc",
    "handlers/request_launch.h",
    "handlers/request_next.cc",
    "handlers/request_next.h",
    "handlers/request_pause.cc",
    "handlers/request_pause.h",
    "handlers/request_scopes.cc",
    "handlers/request_scopes.h",
    "handlers/request_stacktrace.cc",
    "handlers/request_stacktrace.h",
    "handlers/request_step_in.cc",
    "handlers/request_step_in.h",
    "handlers/request_step_out.cc",
    "handlers/request_step_out.h",
    "handlers/request_threads.cc",
    "handlers/request_threads.h",
    "handlers/request_variables.cc",
    "handlers/request_variables.h",
    "server.cc",
    "server.h",
  ]

  deps = []
  public_deps = [
    "//src/developer/debug/zxdb/client",
    "//third_party/github.com/google/cppdap",
  ]

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

source_set("tests") {
  testonly = true
  sources = [
    "context_test.cc",
    "context_test.h",
    "context_unittest.cc",
    "handlers/request_attach_unittest.cc",
    "handlers/request_breakpoint_unittest.cc",
    "handlers/request_continue_unittest.cc",
    "handlers/request_launch_unittest.cc",
    "handlers/request_next_unittest.cc",
    "handlers/request_pause_unittest.cc",
    "handlers/request_scopes_unittest.cc",
    "handlers/request_stacktrace_unittest.cc",
    "handlers/request_step_in_unittest.cc",
    "handlers/request_step_out_unittest.cc",
    "handlers/request_threads_unittest.cc",
    "handlers/request_variables_unittest.cc",
    "server_unittest.cc",
  ]
  deps = [
    ":debug_adapter",
    "//src/developer/debug/zxdb/client:test_support",
    "//src/developer/debug/zxdb/common:test_support",
    "//third_party/googletest:gtest",
  ]

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