# 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/components.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_test.gni")
import("//src/diagnostics/archivist/build/pipeline.gni")
import("//src/diagnostics/archivist/tests/v2/configs.gni")

rustc_test("integration_tests_bin") {
  output_name = "archivist_integration_tests"
  edition = "2021"
  deps = [
    "//sdk/fidl/fuchsia.component:fuchsia.component-rustc",
    "//sdk/fidl/fuchsia.component.decl:fuchsia.component.decl-rustc",
    "//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics-rustc",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//sdk/fidl/fuchsia.sys.internal:fuchsia.sys.internal-rustc",
    "//sdk/fidl/fuchsia.sys2:fuchsia.sys2-rustc",
    "//src/diagnostics/archivist:lib",
    "//src/diagnostics/archivist/tests/v2/components/fidl:fidl-rustc",
    "//src/lib/diagnostics/data/rust",
    "//src/lib/diagnostics/hierarchy/rust",
    "//src/lib/diagnostics/log/message/rust",
    "//src/lib/diagnostics/log/rust",
    "//src/lib/diagnostics/reader/rust",
    "//src/lib/diagnostics/selectors",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-component-test",
    "//src/lib/fuchsia-fs",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/syslog/rust:syslog-listener",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/lib/cm_rust",
    "//src/sys/lib/component-events",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:difference",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tracing",
  ]

  sources = [
    "src/constants.rs",
    "src/inspect/mod.rs",
    "src/inspect/out_directory.rs",
    "src/inspect/reader.rs",
    "src/inspect/recursive_glob.rs",
    "src/inspect/truncation.rs",
    "src/lib.rs",
    "src/logs/attribution.rs",
    "src/logs/basic.rs",
    "src/logs/budget.rs",
    "src/logs/crash.rs",
    "src/logs/interest.rs",
    "src/logs/lifecycle.rs",
    "src/logs/mod.rs",
    "src/logs/selectors.rs",
    "src/logs/sorting.rs",
    "src/logs/utils.rs",
    "src/test_topology.rs",
    "src/utils.rs",
  ]
  inputs = [
    "test_data/empty_result_golden.json",
    "test_data/unified_reader_all_golden.json",
    "test_data/pipeline_reader_all_golden.json",
    "test_data/memory_monitor_v2_moniker_golden.json",
    "test_data/memory_monitor_legacy_moniker_golden.json",
    "test_data/unified_reader_full_filter_golden.json",
    "test_data/pipeline_reader_nonoverlapping_selectors_golden.json",
    "test_data/unified_reader_single_value_golden.json",
    "test_data/pipeline_reader_single_value_golden.json",
  ]
}

fuchsia_component_manifest("with-log-connector-manifest") {
  manifest = "meta/archivist_for_integration_with_log_connector.cml"
  component_name = "archivist_with_log_connector"
}

fuchsia_component("archivist-for-integration-with-log-connector") {
  cm_label = ":with-log-connector-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("with-klog-manifest") {
  manifest = "meta/archivist_with_klog.cml"
  component_name = "archivist_with_klog"
}

fuchsia_component("archivist-with-klog") {
  cm_label = ":with-klog-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("for-integration-manifest") {
  manifest = "meta/archivist_for_integration.cml"
  component_name = "archivist"
}

fuchsia_component("archivist-for-integration") {
  cm_label = ":for-integration-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("small-caches-manifest") {
  manifest = "meta/archivist-with-small-caches.cml"
  component_name = "archivist-with-small-caches"
}

fuchsia_component("archivist-with-small-caches") {
  cm_label = ":small-caches-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("with-feedback-filtering-manifest") {
  manifest = "meta/archivist_for_integration.cml"
  component_name = "archivist-with-feedback-filtering"
}

fuchsia_component("archivist-with-feedback-filtering") {
  cm_label = ":with-feedback-filtering-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("with-legacy-metrics-filtering-manifest") {
  manifest = "meta/archivist_for_integration.cml"
  component_name = "archivist-with-legacy-metrics-filtering"
}

fuchsia_component("archivist-with-legacy-metrics-filtering") {
  cm_label = ":with-legacy-metrics-filtering-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("with-lowpan-filtering-manifest") {
  manifest = "meta/archivist_for_integration.cml"
  component_name = "archivist-with-lowpan-filtering"
}

fuchsia_component("archivist-with-lowpan-filtering") {
  cm_label = ":with-lowpan-filtering-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

fuchsia_component_manifest("with-feedback-filtering-disabled-manifest") {
  manifest = "meta/archivist_for_integration.cml"
  component_name = "archivist-with-feedback-filtering-disabled"
}

fuchsia_component("archivist-with-feedback-filtering-disabled") {
  cm_label = ":with-feedback-filtering-disabled-manifest"
  testonly = true
  deps = [ "//src/diagnostics/archivist:bin" ]
}

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

fuchsia_structured_config_values("archivist-for-integration-config") {
  cm_label = ":for-integration-manifest"
  values = archivist_for_integration_config
}

fuchsia_structured_config_values("archivist-with-small-caches-config") {
  cm_label = ":small-caches-manifest"
  values = small_caches_config
}

fuchsia_structured_config_values("archivist-with-klog-config") {
  cm_label = ":with-klog-manifest"
  values = with_klog_config
}

fuchsia_structured_config_values("archivist-with-log-connector-config") {
  cm_label = ":with-log-connector-manifest"
  values = with_log_connector_config
}

fuchsia_structured_config_values("archivist-with-feedback-filtering-config") {
  cm_label = ":with-feedback-filtering-manifest"
  values = with_feedback_filtering
}

fuchsia_structured_config_values(
    "archivist-with-legacy-metrics-filtering-config") {
  cm_label = ":with-legacy-metrics-filtering-manifest"
  values = with_legacy_metrics_filtering
}

fuchsia_structured_config_values("archivist-with-lowpan-filtering-config") {
  cm_label = ":with-lowpan-filtering-manifest"
  values = with_lowpan_filtering
}

fuchsia_structured_config_values(
    "archivist-with-feedback-filtering-disabled-config") {
  cm_label = ":with-feedback-filtering-disabled-manifest"
  values = with_feedback_filtering_disabled
}

resource("filter_feedback") {
  sources = [ "configs/pipelines/static_selectors.cfg" ]
  outputs = [
    "data/config/pipelines/feedback_filtered/feedback/static_selectors.cfg",
  ]
}

resource("filter_lowpan") {
  sources = [ "configs/pipelines/static_selectors.cfg" ]
  outputs =
      [ "data/config/pipelines/lowpan_filtered/lowpan/static_selectors.cfg" ]
}

resource("do_not_filter_feedback") {
  sources = [ "configs/pipelines/DISABLE_FILTERING.txt" ]
  outputs = [ "data/config/pipelines/feedback_filtering_disabled/feedback/DISABLE_FILTERING.txt" ]
}

resource("configure_legacy_metrics_pipeline") {
  sources = [ "configs/pipelines/legacy_selectors.cfg" ]
  outputs = [ "data/config/pipelines/legacy_metrics_filtered/legacy_metrics/legacy_selectors.cfg" ]
}

fuchsia_test_package("archivist-integration-tests-v2") {
  test_components = [ ":archivist_integration_tests" ]
  deps = [
    ":archivist-for-integration",
    ":archivist-for-integration-config",
    ":archivist-for-integration-with-log-connector",
    ":archivist-with-feedback-filtering",
    ":archivist-with-feedback-filtering-config",
    ":archivist-with-feedback-filtering-disabled",
    ":archivist-with-feedback-filtering-disabled-config",
    ":archivist-with-klog",
    ":archivist-with-klog-config",
    ":archivist-with-legacy-metrics-filtering",
    ":archivist-with-legacy-metrics-filtering-config",
    ":archivist-with-log-connector-config",
    ":archivist-with-lowpan-filtering",
    ":archivist-with-lowpan-filtering-config",
    ":archivist-with-small-caches",
    ":archivist-with-small-caches-config",
    ":configure_legacy_metrics_pipeline",
    ":do_not_filter_feedback",
    ":filter_feedback",
    ":filter_lowpan",
    "components",
    "//src/diagnostics/iquery/test/test_component",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":archivist-integration-tests-v2" ]
}
