# 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"

  null_safe = true

  sources = [
    "fxutils.dart",
    "src/constants.dart",
    "src/env_reader.dart",
    "src/exceptions.dart",
    "src/fx.dart",
    "src/fx_env.dart",
    "src/gn_helper.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/path",
    "//third_party/dart-pkg/pub/pedantic",
  ]
}

## Tests

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

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