# 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/dart/dart_tool.gni")
import("//build/dart/test.gni")

group("tests") {
  testonly = true

  deps = [ ":fxutils_tests($host_toolchain)" ]
}

dart_library("fxutils") {
  package_name = "fxutils"

  sources = [
    "fxutils.dart",
    "src/constants.dart",
    "src/env_reader.dart",
    "src/exceptions.dart",
    "src/fx.dart",
    "src/fx_env.dart",
    "src/list_iterator.dart",
    "src/mock_process.dart",
    "src/process_launcher.dart",
    "src/start_process.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/async",
    "//third_party/dart-pkg/pub/io",
    "//third_party/dart-pkg/pub/meta",
    "//third_party/dart-pkg/pub/path",
    "//third_party/dart-pkg/pub/pedantic",
  ]
}

## Tests

dart_test("fxutils_tests") {
  sources = [
    "fxutils_test.dart",
    "list_iterator_test.dart",
    "process_test.dart",
  ]

  deps = [
    ":fxutils",
    "//third_party/dart-pkg/pub/test",
  ]
}
