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

source_set("session") {
  sources = [
    "session.cc",
    "session.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.modular.internal",
    "//sdk/lib/fit-promise",
  ]

  deps = [
    "//sdk/lib/fdio",
    "//src/lib/files",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [ "session_unittest.cc" ]

  deps = [
    ":session",
    "//sdk/lib/fdio",
    "//sdk/lib/sys/cpp/testing:unit",
    "//sdk/lib/vfs/cpp",
    "//src/lib/files",
    "//src/lib/testing/loop_fixture",
    "//src/modular/lib/pseudo_dir:pseudo_dir_server",
    "//third_party/googletest:gtest",
  ]
}
