# 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/rust/rustc_binary.gni")
import("//build/package.gni")
import("//build/test/test_package.gni")

rustc_binary("test_suite") {
  name = "text_test_suite"
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.ui.text:fuchsia.ui.text-rustc",
    "//sdk/fidl/fuchsia.ui.text.testing:fuchsia.ui.text.testing-rustc",
    "//garnet/public/lib/fidl/rust/fidl",
    "//garnet/public/rust/fuchsia-app",
    "//garnet/public/rust/fuchsia-async",
    "//garnet/public/rust/fuchsia-syslog",
    "//garnet/public/rust/fuchsia-zircon",
    "//third_party/rust_crates:failure",
    "//third_party/rust_crates:futures-preview",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:unicode-segmentation",
    "//third_party/rust_crates:pin-utils",
    "//garnet/public/rust/mundane",
  ]
}

package("text_test_suite") {
  deps = [
    ":test_suite",
  ]

  binary = "text_test_suite"

  meta = [
    {
      path = rebase_path("meta/test_suite.cmx")
      dest = "test_suite.cmx"
    },
  ]
}

test_package("text_test_suite_tests") {
  deps = [
    ":test_suite",
  ]

  tests = [
    {
      name = "text_test_suite_bin_test"
      dest = "text_test_suite_unittests"
    },
  ]
}