# 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/cpp/sdk_source_set.gni")
import("//build/test.gni")
import("//src/sys/build/components.gni")

group("tests") {
  testonly = true
  deps = [ ":procfs-cpp-tests" ]
}

sdk_source_set("cpp") {
  category = "internal"

  sdk_name = "procfs_cpp"

  include_base = "//sdk"
  sources = [
    "internal/cwd.cc",
    "internal/cwd.h",
    "internal/environ.cc",
    "internal/environ.h",
    "process.cc",
    "process.h",
  ]

  public_deps = [
    "//sdk/lib/fdio",
    "//sdk/lib/vfs/cpp",
  ]

  public_configs = [ "//sdk/config" ]
}

test("procfs_cpp_unittests") {
  sources = [ "process_unittest.cc" ]

  deps = [
    ":cpp",
    "//sdk/lib/fdio",
    "//src/lib/files",
    "//src/lib/fxl/test:gtest_main",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
  ]
}

fuchsia_unittest_package("procfs-cpp-tests") {
  deps = [ ":procfs_cpp_unittests" ]
  manifest = "meta/procfs_cpp_unittests.cmx"
}
