# Copyright 2022 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_library.gni")

rustc_library("system_validation_lib") {
  edition = "2021"
  name = "system_validation_lib"
  sources = [
    "src/app_monitor.rs",
    "src/lib.rs",
    "src/screencapture.rs",
    "src/single_session_trace.rs",
  ]
  deps = [
    "//sdk/fidl/fuchsia.tracing.controller:fuchsia.tracing.controller_rust",
    "//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_rust",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-sync",
    "//src/lib/mapped-vmo",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/lib/component-events",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "ui:system_validation_test_pkg",
    "web:dynamic_elements_web_system_validation_test_pkg",
    "web:simple_audio_web_system_validation_test_pkg",
    "web:simple_png_web_system_validation_test_pkg",

    # TODO(https://fxbug.dev/42070261): These should be provided by the Product
    # configurations on which these tests run rather than as deps.
    # TODO(https://fxbug.dev/42070261): Should these be deps of the individual test
    # targets above?
    "//src/chromium:web_context_provider_for_test",
  ]
}

group("tests_with_host_script") {
  testonly = true
  deps = [
    "ui:flatland_view_provider_with_host_script($host_toolchain)",
    "web:simple_video_web_with_host_script($host_toolchain)",
  ]
}
