# 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/fidl/fuchsia.io:fuchsia.io_llcpp",
    "//src/lib/storage/vfs/cpp",
    "//zircon/system/ulib/fbl",
  ]

  symbols_api = "svc.ifs"

  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",
    "//zircon/system/ulib/trace-engine:trace-engine_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" ]
}
