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

group("tests") {
  testonly = true
  deps = [ ":insntrace_tests" ]
}

executable("insntrace_integration_tests") {
  testonly = true
  output_name = "insntrace_integration_tests"

  sources = [ "integration_tests.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.hardware.cpu.insntrace",
    "//sdk/lib/fdio",
    "//src/developer/tracing/lib/test_utils",
    "//src/lib/fxl",
    "//src/lib/fxl/test:test_settings",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/zx",
  ]
}

fuchsia_test_component("insntrace_integration_tests_component") {
  component_name = "insntrace_integration_tests"
  manifest = "meta/insntrace_integration_tests.cmx"
  deps = [ ":insntrace_integration_tests" ]
}

fuchsia_test_package("insntrace_tests") {
  test_components = [ ":insntrace_integration_tests_component" ]
  test_specs = {
    environments = [ nuc_env ]
  }
}
