blob: 0b5e89303e0cb59b5b7d58fd05d8f134554c91e5 [file] [log] [blame] [edit]
# Copyright 2024 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/rust/rustc_library.gni")
import("//build/rust/rustc_staticlib.gni")
import("//build/test.gni")
block_server_sources = [
"src/async_interface.rs",
"src/bin.rs",
"src/c_interface.rs",
"src/lib.rs",
]
block_server_deps = [
"//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_rust",
"//sdk/fidl/fuchsia.hardware.block.driver:fuchsia.hardware.block.driver_rust",
"//sdk/fidl/fuchsia.hardware.block.partition:fuchsia.hardware.block.partition_rust",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_rust",
"//sdk/rust/zx",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-sync",
"//src/lib/trace/rust:trace",
"//src/storage/lib/block_protocol",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:log",
"//third_party/rust_crates:scopeguard",
"//third_party/rust_crates:slab",
]
rustc_library("block_server") {
with_unit_tests = true
edition = "2021"
sources = block_server_sources
deps = block_server_deps
test_deps = [
"//src/lib/fuchsia",
"//third_party/rust_crates:assert_matches",
"//third_party/rust_crates:event-listener",
]
}
rustc_library("vmo_backed_block_server") {
assert_no_deps = [ ":vmo_backed_block_server_testing" ]
edition = "2021"
sources = [ "src/vmo_backed_server.rs" ]
source_root = "src/vmo_backed_server.rs"
deps = [
":block_server",
"//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_rust",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_rust",
"//sdk/rust/zx",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/storage/lib/fs_management/rust:fs_management",
"//third_party/rust_crates:anyhow",
]
}
fuchsia_unittest_package("block_server_tests") {
deps = [ ":block_server_test" ]
}
rustc_staticlib("block_server_c") {
visibility = [ ":*" ]
edition = "2021"
public = [ "block_server_c.h" ]
sources = block_server_sources
deps = block_server_deps
}
source_set("block_server_cc") {
sources = [ "block_server.cc" ]
public = [ "block_server.h" ]
public_deps = [
":block_server_c",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_cpp",
"//zircon/system/ulib/zx",
]
}
source_set("fake_block_server_cc") {
sources = [ "fake_server.cc" ]
public = [ "fake_server.h" ]
public_deps = [
":block_server_cc",
"//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_cpp",
"//src/storage/lib/block_client/cpp",
"//zircon/system/ulib/storage/buffer",
"//zircon/system/ulib/zx",
]
}
test("block_server_cc_tests") {
sources = [ "block_server_cc_tests.cc" ]
deps = [
":block_server_cc",
"//src/lib/fxl/test:gtest_main",
"//src/storage/lib/block_client/cpp",
"//zircon/system/ulib/storage/buffer",
]
}
fuchsia_unittest_package("block_server_cc_tests_package") {
package_name = "block-server-cc-tests"
deps = [ ":block_server_cc_tests" ]
}
group("tests") {
testonly = true
deps = [
":block_server_cc_tests_package",
":block_server_tests",
"integration:tests",
]
}