| # 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/rust/rustc_binary.gni") |
| import("//build/rust/rustc_library.gni") |
| import("//build/rust/rustc_test.gni") |
| import("//build/test/test_package.gni") |
| |
| rustc_library("blobfs-stress-test-lib") { |
| edition = "2018" |
| source_root = "lib/mod.rs" |
| |
| deps = [ |
| "//garnet/lib/rust/files_async", |
| "//garnet/lib/rust/io_util", |
| "//sdk/fidl/fuchsia.io:fuchsia.io-rustc", |
| "//src/lib/fidl/rust/fidl", |
| "//src/lib/zircon/rust:fuchsia-zircon", |
| "//src/sys/component_manager/testing:test_utils_lib", |
| "//src/sys/pkg/lib/fuchsia-hash", |
| "//src/sys/pkg/lib/fuchsia-merkle", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:log", # for recording messages |
| "//third_party/rust_crates:rand", |
| "//third_party/rust_crates:rand_core", |
| ] |
| |
| sources = [ |
| "lib/blob.rs", |
| "lib/io.rs", |
| "lib/mod.rs", |
| "lib/state.rs", |
| "lib/utils.rs", |
| ] |
| } |
| |
| rustc_test("blobfs-stress-test-bin") { |
| name = "blobfs_stress_test" |
| edition = "2018" |
| source_root = "tests.rs" |
| deps = [ |
| ":blobfs-stress-test-lib", |
| "//src/lib/fuchsia-async", |
| "//src/lib/syslog/rust:syslog", # for initialization |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:log", # for recording messages |
| "//third_party/rust_crates:rand", |
| "//third_party/rust_crates:rand_core", |
| ] |
| |
| sources = [ "tests.rs" ] |
| } |
| |
| executable("mounter") { |
| testonly = true |
| sources = [ "mounter.cc" ] |
| deps = [ |
| "//sdk/fidl/fuchsia.sys2", |
| "//sdk/lib/sys/cpp", |
| "//sdk/lib/syslog/cpp", |
| "//src/lib/isolated_devmgr/v2_component", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| "//zircon/system/ulib/block-client", |
| "//zircon/system/ulib/fdio-caller", |
| "//zircon/system/ulib/fs", |
| "//zircon/system/ulib/fs-management", |
| "//zircon/system/ulib/fvm", |
| "//zircon/system/ulib/ramdevice-client", |
| ] |
| } |
| |
| test_package("blobfs-stress-test") { |
| deps = [ |
| ":blobfs-stress-test-bin", |
| ":mounter", |
| "//src/lib/isolated_devmgr/v2_component:isolated-devmgr", |
| "//src/storage/bin/blobfs:blobfs", |
| "//src/sys/component_manager:bin", |
| ] |
| |
| meta = [ |
| { |
| path = |
| rebase_path("//src/sys/component_manager/meta/component_manager.cmx") |
| dest = "component_manager.cmx" |
| }, |
| { |
| path = rebase_path("//src/storage/blobfs-stress-test/meta/root.cml") |
| dest = "root.cm" |
| }, |
| { |
| path = rebase_path("//src/storage/blobfs-stress-test/meta/mounter.cml") |
| dest = "mounter.cm" |
| }, |
| ] |
| |
| binaries = [ |
| { |
| name = "component_manager" |
| }, |
| { |
| name = "blobfs" |
| }, |
| { |
| name = "mounter" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "blobfs_stress_test" |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| }, |
| ] |
| } |
| |
| rustc_binary("blobfs-stressor-cli-bin") { |
| name = "blobfs_stressor_cli" |
| edition = "2018" |
| source_root = "main.rs" |
| |
| deps = [ |
| ":blobfs-stress-test-lib", |
| "//src/lib/fuchsia-async", |
| "//src/lib/syslog/rust:syslog", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:log", |
| "//third_party/rust_crates:rand", |
| "//third_party/rust_crates:rand_core", |
| "//third_party/rust_crates:structopt", |
| ] |
| |
| sources = [ "main.rs" ] |
| } |
| |
| package("blobfs-stressor") { |
| deps = [ ":blobfs-stressor-cli-bin" ] |
| |
| binaries = [ |
| { |
| name = "blobfs_stressor_cli" |
| dest = "blobfs_stressor" |
| shell = true |
| }, |
| ] |
| } |