# 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/test.gni")

static_library("line_input") {
  sources = [
    "line_input.cc",
    "line_input.h",
  ]

  deps = []
  public_deps = [
    "//src/lib/fxl",
    "//zircon/public/lib/fit",
  ]

  if (current_toolchain != host_toolchain) {
    deps += [
      "//zircon/public/lib/fdio",
      "//zircon/public/lib/zx",
    ]
  }
}

# This code has only ever been tested for the host. If you are using it on the target, you should
# consider enabling this test on the target as well.
if (current_toolchain == host_toolchain) {
  test("line_input_tests") {
    sources = [
      "line_input_unittest.cc",
    ]

    deps = [
      ":line_input",
      "//src/lib/fxl/test:gtest_main",
      "//third_party/googletest:gtest",
    ]
  }
}

group("tests") {
  testonly = true

  deps = [
    ":line_input_tests($host_toolchain)",
  ]
}
