blob: 12fb92b9cd814f230f0ba3e8905885fa08e3ff99 [file] [log] [blame]
# Copyright 2022 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("//src/virtualization/lib/qcow/qcow_test_image.gni")
group("tests") {
testonly = true
deps = [ ":qcow_unittests" ]
}
rustc_library("qcow") {
edition = "2021"
with_unit_tests = true
sources = [
"src/lib.rs",
"src/wire.rs",
]
deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
"//src/lib/fuchsia-async",
"//src/lib/zerocopy",
"//src/lib/zircon/rust:fuchsia-zircon-status",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:futures",
]
test_deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
"//src/lib/fdio/rust:fdio",
"//src/lib/fidl/rust/fidl",
]
}
# A completely empty image.
qcow_test_image("empty_1gb") {
disk_size = "1G"
}
# A disk image with data written to multiple locations in the file.
qcow_test_image("sparse") {
disk_size = "1G"
writes = [
# First and third 1k bytes are populated (but not bytes 1025->2048).
"0+1k=0xaa",
"2k+1k=0xab",
# Last 1024 bytes
"1048575k+1k=0xbb",
# Something in the middle
"512M+1k=0xcc",
]
}
group("test_images") {
deps = [
":empty_1gb",
":sparse",
]
}
fuchsia_unittest_package("qcow_unittests") {
deps = [
":qcow_test",
":test_images",
]
}