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

rustc_binary("test_suite") {
  name = "text_test_suite"
  testonly = true
  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",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/mundane",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/ui/lib/text",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:pin-utils",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:unicode-segmentation",
  ]
}

package("text_test_suite") {
  testonly = true

  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_test" ]

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