blob: 25873ca55733e5f1c75af41d1be3de39a6b2d0f2 [file]
# 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/fuchsia_unittest_package.gni")
group("tests") {
testonly = true
deps = [
":virtio_balloon_device_tests",
":virtio_block_device_tests",
":virtio_console_device_tests",
":virtio_gpu_device_tests",
":virtio_input_device_tests",
":virtio_mem_device_tests",
# TODO(b/410037697): Re-enable network support and tests.
# ":virtio_net_device_tests",
":virtio_rng_device_tests",
":virtio_sound_device_tests",
":virtio_vsock_device_tests",
]
}
source_set("virtio_queue_fake") {
testonly = true
sources = [
"virtio_queue_fake.cc",
"virtio_queue_fake.h",
]
deps = [ "//src/virtualization/bin/vmm/device:lib" ]
}
source_set("test_with_device") {
testonly = true
sources = [
"test_with_device.cc",
"test_with_device.h",
]
deps = [
"//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics_hlcpp",
"//sdk/lib/sys/cpp",
]
public_deps = [
"//sdk/fidl/fuchsia.virtualization.hardware:fuchsia.virtualization.hardware_hlcpp",
"//sdk/lib/diagnostics/reader/cpp:archive_reader",
"//src/lib/testing/loop_fixture",
"//src/virtualization/bin/vmm/device:lib",
"//zircon/system/ulib/virtio",
]
}
template("device_test") {
test_name = target_name
bin_name = "${target_name}_bin"
component_name = "${target_name}_cmp"
package_name = target_name
executable(bin_name) {
forward_variables_from(invoker,
[
"deps",
"sources",
])
output_name = test_name
testonly = true
deps += [
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gmock",
]
if (defined(invoker.configs)) {
configs += invoker.configs
}
}
fuchsia_test_component(component_name) {
forward_variables_from(invoker,
[
"restricted_features",
"manifest",
"test_type",
])
component_name = test_name
deps = [ ":${bin_name}" ]
}
fuchsia_test_package(package_name) {
forward_variables_from(invoker, [ "test_specs" ])
package_name = test_name
test_components = [ ":${component_name}" ]
if (defined(invoker.device_components)) {
deps = invoker.device_components
}
}
}
device_test("virtio_balloon_device_tests") {
sources = [ "virtio_balloon_test.cc" ]
manifest = "meta/virtio_balloon_device_tests.cml"
device_components = [ "//src/virtualization/bin/vmm/device/virtio_balloon:virtio_balloon_component" ]
configs = [ "//build/config:all_source" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/fidl/fuchsia.virtualization.hardware:fuchsia.virtualization.hardware_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//zircon/system/ulib/virtio",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_block_device_tests") {
sources = [ "virtio_block_test.cc" ]
manifest = "meta/virtio_block_device_tests.cml"
device_components = [
"//src/virtualization/bin/vmm/device/virtio_block:virtio_block_component",
]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/fidl/fuchsia.virtualization:fuchsia.virtualization_hlcpp",
"//sdk/lib/fdio",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//third_party/googletest:gtest",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/virtio",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_console_device_tests") {
sources = [ "virtio_console_test.cc" ]
manifest = "meta/virtio_console_device_tests.cml"
device_components = [ "//src/virtualization/bin/vmm/device/virtio_console:virtio_console_component" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_gpu_device_tests") {
sources = [ "virtio_gpu_test.cc" ]
manifest = "meta/virtio_gpu_device_tests.cml"
device_components =
[ "//src/virtualization/bin/vmm/device/virtio_gpu:virtio_gpu_component" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.element:fuchsia.element_hlcpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_hlcpp",
"//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//src/ui/scenic/lib/utils",
"//src/ui/testing/test_graphical_presenter",
"//src/ui/testing/ui_test_manager",
"//zircon/system/ulib/virtio",
]
test_specs = {
# Vulkan is needed to support UITestManager.
environments = guest_vulkan_envs
log_settings = {
max_severity = "ERROR"
}
}
test_type = "system"
}
device_test("virtio_input_device_tests") {
sources = [ "virtio_input_test.cc" ]
manifest = "meta/virtio_input_device_tests.cml"
device_components = [
"//src/virtualization/bin/vmm/device/virtio_input:virtio_input_component",
]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.input:fuchsia.input_hlcpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_hlcpp",
"//sdk/fidl/fuchsia.ui.pointer:fuchsia.ui.pointer_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//zircon/system/ulib/virtio",
"//zircon/system/ulib/zx",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_net_device_tests") {
sources = [ "virtio_net_test.cc" ]
manifest = "meta/virtio_net_device_tests.cml"
device_components =
[ "//src/virtualization/bin/vmm/device/virtio_net:virtio_net_component" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.hardware.network:fuchsia.hardware.network_hlcpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp",
"//sdk/fidl/fuchsia.net.virtualization:fuchsia.net.virtualization_hlcpp",
"//sdk/fidl/fuchsia.scheduler:fuchsia.scheduler_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/lib/async-loop:async-loop-cpp",
"//sdk/lib/async-loop:async-loop-default",
"//sdk/lib/fit-promise",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//src/connectivity/lib/network-device/cpp",
"//zircon/system/ulib/trace-provider",
"//zircon/system/ulib/virtio",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_rng_device_tests") {
sources = [ "virtio_rng_test.cc" ]
manifest = "meta/virtio_rng_device_tests.cml"
device_components =
[ "//src/virtualization/bin/vmm/device/virtio_rng:virtio_rng_component" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_sound_device_tests") {
sources = [ "virtio_sound_test.cc" ]
manifest = "meta/virtio_sound_device_tests.cml"
device_components = [
"//src/virtualization/bin/vmm/device/virtio_sound:virtio_sound_component",
]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.media:fuchsia.media_hlcpp",
"//sdk/fidl/fuchsia.scheduler:fuchsia.scheduler_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//zircon/system/ulib/fzl",
"//zircon/system/ulib/virtio",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_vsock_device_tests") {
sources = [ "virtio_vsock_test.cc" ]
manifest = "meta/virtio_vsock_device_tests.cml"
device_components =
[ "//src/virtualization/bin/vmm/device/virtio_vsock:virtio_vsock_cmp" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//zircon/system/ulib/virtio",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}
device_test("virtio_mem_device_tests") {
sources = [ "virtio_mem_test.cc" ]
manifest = "meta/virtio_mem_device_tests.cml"
device_components =
[ "//src/virtualization/bin/vmm/device/virtio_mem:virtio_mem_component" ]
configs = [ "//build/config:all_source" ]
deps = [
":test_with_device",
":virtio_queue_fake",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_hlcpp",
"//sdk/fidl/fuchsia.virtualization.hardware:fuchsia.virtualization.hardware_hlcpp",
"//sdk/lib/sys/component/cpp/testing:cpp",
"//zircon/system/ulib/virtio",
"//zircon/system/ulib/zircon-internal",
]
test_specs = {
environments = guest_envs
log_settings = {
max_severity = "ERROR"
}
}
}