# Copyright 2018 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/components.gni")
import("//build/dart/dart_library.gni")
import("//build/dart/dart_test_component.gni")
import("//build/testing/environments.gni")

dart_library("fuchsia_vfs") {
  package_name = "fuchsia_vfs"
  null_safe = true

  sdk_category = "partner"

  source_dir = "lib"

  sources = [
    "src/composed_pseudo_dir.dart",
    "src/internal/_error_node.dart",
    "src/internal/_flags.dart",
    "src/pseudo_dir.dart",
    "src/pseudo_file.dart",
    "src/pseudo_vmo_file.dart",
    "src/remote_dir.dart",
    "src/service.dart",
    "src/vmo_file.dart",
    "src/vnode.dart",
    "vfs.dart",
  ]

  deps = [
    "//sdk/dart/fidl",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.io",
    "//sdk/fidl/fuchsia.mem",
    "//third_party/dart-pkg/pub/meta",
    "//third_party/dart-pkg/pub/quiver",
  ]
}

dart_test_component("unittests-component") {
  component_name = "fuchsia-vfs-unittests"
  manifest = "meta/fuchsia-vfs-unittests.cml"
  null_safe = true
  sources = [
    "composed_pseudo_dir_test.dart",
    "pseudo_dir_test.dart",
    "pseudo_file_test.dart",
    "pseudo_vmo_file_test.dart",
    "remote_dir_test.dart",
    "service_test.dart",
    "vmo_file_test.dart",
  ]

  deps = [
    ":fuchsia_vfs",
    "//sdk/dart/fidl",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.io",
    "//src/testing/fidl:placeholders",
    "//third_party/dart-pkg/pub/test",
  ]
}

fuchsia_test_package("fuchsia-vfs-unittests") {
  test_components = [ ":unittests-component" ]
}

group("unit_tests") {
  testonly = true
  deps = [ ":fuchsia-vfs-unittests" ]
}

group("tests") {
  testonly = true
  deps = [ ":unit_tests" ]
}
