blob: f279a92e2d7eae98cd6bd91883418a5ca55ceb75 [file] [log] [blame]
# Copyright 2019 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/fuzz.gni")
import("//build/test.gni")
static_library("cpp") {
friend = [ ":*" ]
public = [
"debug.h",
"shared_mutex.h",
"vfs.h",
"vfs_types.h",
"vnode.h",
]
# Uncomment to enable some debug log messages
# defines = [ "FS_TRACE_DEBUG_ENABLED" ]
sources = [
"debug.cc",
"vfs.cc",
"vnode.cc",
]
public_deps = [
"//sdk/lib/fdio",
"//sdk/lib/fit",
"//zircon/system/ulib/fbl",
# <fs/vnode.h> has #include <lib/zx/result.h>
"//zircon/system/ulib/zx",
]
deps = [ "//zircon/system/ulib/fbl" ]
if (is_fuchsia) {
public += [
"file_connection.h",
"fuchsia_vfs.h",
"lazy_dir.h",
"managed_vfs.h",
"paged_vfs.h",
"paged_vnode.h",
"pager_thread_pool.h",
"pseudo_dir.h",
"pseudo_file.h",
"queue.h",
"ref_counted.h",
"remote_dir.h",
"remote_file.h",
"service.h",
"synchronous_vfs.h",
"ticker.h",
"trace.h",
"tracked_remote_dir.h",
"vmo_file.h",
"watcher.h",
]
sources += [
"advisory_lock.cc",
"advisory_lock.h",
"connection.cc",
"connection.h",
"directory_connection.cc",
"directory_connection.h",
"file_connection.cc",
"file_connection.h",
"fuchsia_vfs.cc",
"lazy_dir.cc",
"managed_vfs.cc",
"node_connection.cc",
"node_connection.h",
"paged_vfs.cc",
"paged_vnode.cc",
"pager_thread_pool.cc",
"pseudo_dir.cc",
"pseudo_file.cc",
"remote_dir.cc",
"remote_file.cc",
"remote_file_connection.cc",
"remote_file_connection.h",
"service.cc",
"stream_file_connection.cc",
"stream_file_connection.h",
"synchronous_vfs.cc",
"tracked_remote_dir.cc",
"vfs_types.cc",
"vmo_file.cc",
"watcher.cc",
]
public_deps += [
"//sdk/fidl/fuchsia.fs:fuchsia.fs_cpp_wire",
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp_wire",
"//sdk/lib/file-lock:cpp",
"//zircon/system/ulib/async",
"//zircon/system/ulib/fidl-async:fidl-async-cpp",
# <fs/tracked_remote_dir.h> has #include <lib/async/cpp/wait.h>.
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/zx",
# <fs/trace.h> has #include <lib/trace/event.h>.
"//zircon/system/ulib/trace",
]
deps += [
"//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_cpp_wire",
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp_wire",
"//sdk/fidl/fuchsia.mem:fuchsia.mem_cpp_wire",
"//sdk/lib/fdio",
"//sdk/lib/fidl",
"//sdk/lib/fit",
"//zircon/system/ulib/async",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/fzl",
"//zircon/system/ulib/sync",
"//zircon/system/ulib/trace",
"//zircon/system/ulib/zx",
]
}
}
static_library("inotify_test_base") {
testonly = true
public = [ "inotify_test_base.h" ]
sources = [ "inotify_test_base.cc" ]
deps = [
"//sdk/lib/fdio",
"//sdk/lib/fidl",
"//src/lib/fxl",
"//src/lib/storage/vfs/cpp",
"//src/storage/memfs:cpp",
"//zircon/system/ulib/async-loop",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
]
}
source_set("test_support") {
public = [ "dir_test_util.h" ]
public_deps = [ ":cpp" ]
}
group("tests") {
testonly = true
deps = [
":fs-connection-test",
":fs-connection-test-pkg",
":fs-fuzzers",
":fs-inotify-test",
":fs-inotify-test-pkg",
":fs-vnode-test",
":fs-vnode-test-pkg",
"inspect:tests",
"journal:tests",
"transaction:tests",
]
}
test("fs-vnode-test") {
output_name = "fs-vnode-test"
sources = [
"lazy_dir_tests.cc",
"pseudo_dir_tests.cc",
"pseudo_file_tests.cc",
"remote_dir_tests.cc",
"remote_file_tests.cc",
"service_tests.cc",
"teardown_tests.cc",
"tracked_remote_dir_tests.cc",
"vfs_tests.cc",
"vfs_types_tests.cc",
"vmo_file_tests.cc",
"vnode_contract_tests.cc",
]
deps = [
":test_support",
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp_wire",
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp_wire_testing",
"//sdk/lib/fdio",
"//sdk/lib/fidl",
"//src/lib/storage/vfs/cpp",
"//zircon/system/ulib/async",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/async-default",
"//zircon/system/ulib/async-loop",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/async-testing",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/sync:sync-cpp",
"//zircon/system/ulib/trace",
"//zircon/system/ulib/trace-engine",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
]
# TODO(https://fxbug.dev/58162): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}
test("fs-connection-test") {
output_name = "fs-connection-test"
sources = [
"advisory_lock_tests.cc",
"connection_contract_tests.cc",
"connection_integration_tests.cc",
"connection_rights_tests.cc",
"paging_test.cc",
]
deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp_wire_testing",
"//sdk/fidl/fuchsia.posix.socket.packet:fuchsia.posix.socket.packet_cpp_wire",
"//sdk/fidl/fuchsia.posix.socket.raw:fuchsia.posix.socket.raw_cpp_wire",
"//sdk/lib/fdio",
"//sdk/lib/fidl",
"//sdk/lib/zxio",
"//src/lib/fxl",
"//src/lib/storage/vfs/cpp",
"//src/storage/memfs:cpp",
"//zircon/system/ulib/async",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/async-default",
"//zircon/system/ulib/async-loop",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/sync",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
]
}
test("fs-inotify-test") {
output_name = "fs-inotify-test"
sources = [ "inotify_tests.cc" ]
deps = [
":inotify_test_base",
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp_wire",
"//sdk/lib/fdio",
"//sdk/lib/fidl",
"//src/lib/fxl",
"//src/lib/storage/vfs/cpp",
"//src/storage/memfs:cpp",
"//zircon/system/ulib/async-loop",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
]
}
fuchsia_library_fuzzer("vmo_file-fuzzer") {
sources = [ "vmo_file-fuzzer.cc" ]
deps = [ "//src/lib/storage/vfs/cpp" ]
}
fuchsia_fuzzer_component("vmo-file-fuzzer-component") {
manifest = "meta/vmo_file-fuzzer.cml"
deps = [ ":vmo_file-fuzzer" ]
}
fuchsia_fuzzer_package("fs-fuzzers") {
cpp_fuzzer_components = [ ":vmo-file-fuzzer-component" ]
}
fuchsia_unittest_package("fs-connection-test-pkg") {
package_name = "fs-connection-test"
deps = [ ":fs-connection-test" ]
}
fuchsia_unittest_package("fs-inotify-test-pkg") {
package_name = "fs-inotify-test"
deps = [ ":fs-inotify-test" ]
}
fuchsia_unittest_package("fs-vnode-test-pkg") {
package_name = "fs-vnode-test"
deps = [ ":fs-vnode-test" ]
}