blob: b2668ee241aa247c1289c34f7069cf2d2e89bbe0 [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/test.gni")
group("tests") {
testonly = true
deps = [
":fvm-integration-test",
":fvm-tests",
":fvm_unit($host_toolchain)",
"//src/storage/fvm/driver:tests",
]
}
static_library("fvm") {
sources = [
"format.cc",
"fvm.cc",
"fvm_check.cc",
"metadata.cc",
"metadata_buffer.cc",
"sparse_reader.cc",
]
deps = [
"//sdk/lib/fit",
"//src/lib/digest",
"//src/lib/uuid",
"//third_party/boringssl",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/range",
"//zircon/third_party/ulib/lz4",
"//zircon/third_party/ulib/safemath",
]
public_deps = [
"//src/lib/digest",
"//src/storage/gpt",
"//zircon/system/ulib/zxc",
"//zircon/third_party/ulib/lz4",
]
if (is_fuchsia) {
sources += [
"client.cc",
"vmo_metadata_buffer.cc",
]
deps += [
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_c",
"//src/lib/storage/block_client/cpp",
"//src/storage/gpt",
"//zircon/system/ulib/fzl",
"//zircon/system/ulib/sync",
"//zircon/system/ulib/zx",
]
} else {
# fvm-check.cpp has #include <zircon/status.h> even when built for host.
public_deps += [ "//src/zircon/lib/zircon:zircon-headers" ]
}
# TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
# Consider switching to the C++ bindings. See linked bug for details.
configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}
static_library("test_support") {
testonly = true
sources = [
"test_support.cc",
"test_support.h",
]
public_deps = [
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_c",
"//src/lib/storage/ramdevice_client/cpp",
"//src/storage/fvm",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/zx",
]
deps = [
"//sdk/fidl/fuchsia.device:fuchsia.device_llcpp",
"//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_c",
"//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_llcpp",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_c",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_llcpp",
"//sdk/fidl/fuchsia.io:fuchsia.io_llcpp",
"//sdk/lib/device-watcher/cpp",
"//sdk/lib/fdio",
"//src/lib/storage/fs_management",
"//src/lib/storage/ramdevice_client/cpp",
"//src/storage/fvm",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/fdio-caller",
"//zircon/system/ulib/fidl",
"//zircon/system/ulib/fidl",
"//zircon/system/ulib/fzl",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
# TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
# Consider switching to the C++ bindings. See linked bug for details.
configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}
test("fvm_unit") {
output_name = "fvm-unit-test"
sources = [
"format_test.cc",
"integrity_validation_test.cc",
"metadata_test.cc",
"partition_entry_test.cc",
"slice_entry_test.cc",
]
deps = [
"//src/lib/uuid",
"//src/storage/fvm",
"//zircon/system/ulib/zxtest",
]
if (is_fuchsia) {
sources += [ "client_test.cc" ]
deps += [
"//sdk/lib/fdio",
"//src/lib/storage/block_client/cpp",
"//zircon/system/ulib/fdio-caller",
"//zircon/system/ulib/zx",
]
}
# TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
# Consider switching to the C++ bindings. See linked bug for details.
configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}
fuchsia_unittest_package("fvm-tests") {
deps = [ ":fvm_unit" ]
}
test("fvm-integration") {
output_name = "fvm-integration-test"
sources = [
"fvm_integration_test.cc",
"resize_integration_test.cc",
]
# TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
# Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
# See linked bug for details.
configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]
deps = [
":test_support",
"//sdk/fidl/fuchsia.device:fuchsia.device_c",
"//sdk/fidl/fuchsia.device:fuchsia.device_llcpp",
"//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_llcpp",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_llcpp",
"//sdk/fidl/fuchsia.io:fuchsia.io_llcpp",
"//sdk/lib/fdio",
"//src/devices/testing/driver-integration-test-shim",
"//src/lib/storage/block_client/cpp",
"//src/lib/storage/fs_management",
"//src/lib/storage/ramdevice_client/cpp",
"//src/storage/blobfs",
"//src/storage/fvm",
"//src/storage/minfs",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/fdio-caller",
"//zircon/system/ulib/zircon-internal",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
]
# Other components/binaries we depend on.
deps += [
"//src/devices/block/drivers/core",
"//src/devices/block/drivers/ramdisk",
"//src/devices/bus/drivers/platform",
"//src/storage/fvm/driver",
]
data_deps = [ "//src/storage/bin/minfs" ]
# TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
# Consider switching to the C++ bindings. See linked bug for details.
configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}
fuchsia_test_component("test-component") {
component_name = "fvm-integration-test"
manifest = "meta/fvm_integration_test.cml"
deps = [ ":fvm-integration" ]
}
fuchsia_test_package("fvm-integration-test") {
test_components = [ ":test-component" ]
test_specs = {
log_settings = {
max_severity = "ERROR"
}
}
}