# 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/rust/rustc_test.gni")

rustc_test("tests_bin") {
  edition = "2021"
  source_root = "main.rs"
  name = "run_test_suite_integration_tests"

  deps = [
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2_rust",
    "//sdk/fidl/fuchsia.test.manager:fuchsia.test.manager_rust",
    "//src/lib/async-utils",
    "//src/lib/diagnostics/data/rust",
    "//src/lib/diagnostics/reader/rust",
    "//src/lib/diagnostics/selectors",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/test_util",
    "//src/lib/testing/fixture",
    "//src/lib/testing/test_list",
    "//src/sys/run_test_suite:lib",
    "//src/sys/run_test_suite/directory",
    "//third_party/rust_crates:assert_matches",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:test-case",
  ]

  sources = [ "main.rs" ]
}

fuchsia_unittest_package("run_test_suite_integration_tests") {
  manifest = "meta/run_test_suite_integration_tests.cml"
  deps = [
    ":tests_bin",
    "test_data",
    "//examples/components/routing/rust/echo_server:echo_server_cmp",
    "//examples/tests/rust:custom_artifact_user_cmp",
    "//src/sys/test_manager/tests:test_realm",
    "//src/sys/test_manager/tests/test_data",
    "//src/sys/test_manager/tests/test_data:echo_test_client",
  ]

  subpackages = [ "//src/sys/test_manager:pkg" ]

  # There's expected error logs that happen due to races given that the logging component just
  # logs and exits quickly.
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
  test_type = "test_arch"
}

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