| # 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" |
| } |
| } |
| } |