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

visibility = [ "//peridot/bin/ledger/*" ]

source_set("filesystem") {
  sources = [
    "detached_path.cc",
    "detached_path.h",
    "directory_reader.cc",
    "directory_reader.h",
    "get_directory_content_size.cc",
    "get_directory_content_size.h",
  ]

  public_deps = [
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/fit",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "detached_path_unittest.cc",
    "directory_reader_unittest.cc",
    "get_directory_content_size_unittest.cc",
  ]

  deps = [
    ":filesystem",
    "//garnet/public/lib/fxl",
    "//peridot/lib/scoped_tmpfs",
    "//third_party/googletest:gtest",
  ]

  configs += [ "//peridot/bin/ledger:ledger_config" ]
}
