# 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/rust/rustc_test.gni")
import("//src/sys/build/components.gni")

rustc_test("tests_bin") {
  edition = "2018"
  source_root = "main.rs"
  name = "go_runner_integration_test"

  deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2-rustc",
    "//sdk/fidl/fuchsia.test:fuchsia.test-rustc",
    "//sdk/fidl/fuchsia.test.manager:fuchsia.test.manager-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/test_executor/rust:test_executor",
    "//src/sys/test_runners:test_lib",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:itertools",
    "//third_party/rust_crates:linked-hash-map",
    "//third_party/rust_crates:pretty_assertions",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [ "main.rs" ]
}

fuchsia_component("go_runner_integration_test") {
  testonly = true
  manifest = "meta/go_runner_integration_test.cml"
  deps = [ ":tests_bin" ]
}

fuchsia_test_package("go-runner-integration-test") {
  test_components = [ ":go_runner_integration_test" ]
}

group("tests") {
  testonly = true
  deps = [
    ":go-runner-integration-test",
    "../test_data",
  ]
}
