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

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

sdk_shared_library("svc") {
  category = "partner"

  sources = [
    "dir.cc",
    "dir.h",
  ]

  public_deps = [ "//zircon/system/ulib/async" ]

  deps = [ "//sdk/lib/vfs/cpp" ]

  include_base = "//sdk"

  libcxx_linkage = "static"

  public_configs = [ "//sdk/config" ]

  runtime_deps = [
    "//sdk/lib/fdio:fdio_sdk",
    "//zircon/system/ulib/async-default:async-default_sdk",
  ]
}

test("svc_unittests") {
  sources = [ "dir_unittest.cc" ]

  deps = [
    ":svc",
    "//sdk/fidl/fuchsia.io",
    "//sdk/lib/fdio",
    "//sdk/lib/vfs/cpp",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/testing/loop_fixture",
    "//zircon/system/ulib/zx",
  ]
}

fuchsia_unittest_package("svc_tests") {
  deps = [ ":svc_unittests" ]
}
