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

group("flutter-runner-launch-smoke-test") {
  testonly = true
  deps = [ ":tests" ]
}

group("tests") {
  testonly = true
  deps = [ ":flutter-runner-launch-smoke-test-unittests" ]
}

rustc_binary("bin") {
  name = "flutter-runner-launch-smoke-test"

  # Generates a GN target for unit-tests with the label `bin_test`, and
  # a binary named `flutter_runner_launch_smoke_test_bin_test`.
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
    "//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app-rustc",
    "//src/flutter/tests/fidl:fidl-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "src/main.rs" ]
}

fuchsia_component("component") {
  component_name = "flutter-runner-launch-smoke-test"
  manifest = "meta/flutter-runner-launch-smoke-test.cmx"
  deps = [ ":bin" ]
}

# Run with `fx test flutter-runner-launch-smoke-test-unittests`.
fuchsia_unittest_package("flutter-runner-launch-smoke-test-unittests") {
  # It is
  manifest = "meta/flutter-runner-launch-smoke-test.cmx"
  deps = [
    ":bin_test",
    "//src/flutter/tests/bin/null-safe-enabled-flutter",
    "//src/flutter/tests/bin/pingable-flutter-component",
  ]
}
