| # Copyright 2018 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/cipd.gni") |
| import("//build/components.gni") |
| import("//build/testing/cc_test_executable.gni") |
| import("//src/media/audio/audio_core/package.gni") |
| import("//src/virtualization/buildtools/linux_paths.gni") |
| import("//src/virtualization/buildtools/romfs_image.gni") |
| |
| guest_packages = [ |
| "//src/virtualization/bin/guest_manager:debian_guest_manager", |
| "//src/virtualization/bin/guest_manager:zircon_guest_manager", |
| |
| # TODO(https://fxbug.dev/42073215): when |
| # fuchsia.component.test/Realm.InitMutableConfigFromPackage works with |
| # subpackaged components, replace with: |
| # "//src/virtualization/bin/termina_guest_manager", |
| "//src/virtualization/packages/termina_guest", |
| ] |
| |
| linux_tests_label = "//src/virtualization/packages/debian_guest:tests" |
| resource("debian_tests_img") { |
| sources = [ get_label_info(linux_tests_label, "target_out_dir") + |
| "/debian/tests.romfs" ] |
| outputs = [ "data/linux_tests.img" ] |
| deps = [ linux_tests_label ] |
| } |
| |
| termina_extras_label = "//src/virtualization/packages/termina_guest:extras" |
| resource("termina_extras_img") { |
| sources = |
| [ get_label_info(termina_extras_label, "target_out_dir") + "/vm_extras" ] |
| outputs = [ "data/vm_extras.img" ] |
| deps = [ termina_extras_label ] |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":termina_container_tests_pkg", |
| ":virtualization_balloon_tests_pkg", |
| ":virtualization_block_tests_pkg", |
| ":virtualization_core_tests_pkg", |
| ":virtualization_gpu_tests_pkg", |
| ":virtualization_input_tests_pkg", |
| ":virtualization_mem_tests_pkg", |
| ":virtualization_net_tests_pkg", |
| ":virtualization_shutdown_tests_pkg", |
| ":virtualization_test_utils_pkg", |
| ":virtualization_vsock_tests_pkg", |
| "hypervisor", |
| "lib:tests", |
| "smoke", |
| "virtio_input_test_util:tests($host_toolchain)", |
| ] |
| |
| # TODO(https://fxbug.dev/42076911): These tests currently do not work on arm64. |
| if (current_cpu == "x64") { |
| deps += [ |
| # TODO(https://fxbug.dev/42142945): These tests needs to be reworked so that they |
| # interact correctly with Scenic. |
| ":virtualization_sound_tests_pkg", |
| ] |
| } |
| } |
| |
| group("build_only") { |
| deps = [ |
| # The zircon test utils binaries touch a lot of FIDL interfaces so we want |
| # to build them in CQ to test for build regressions. |
| "//src/virtualization/tests:virtualization_test_utils_pkg", |
| ] |
| } |
| |
| group("test_images") { |
| testonly = true |
| deps = [ |
| ":debian_tests_img", |
| ":linux_extras_img", |
| ":termina_extras_img", |
| linux_tests_label, |
| termina_extras_label, |
| |
| # TODO(https://fxbug.dev/42073215): when |
| # fuchsia.component.test/Realm.InitMutableConfigFromPackage works with |
| # subpackaged components, remove this line. |
| "//src/virtualization/bin/termina_guest_manager:termina_guest_manager_cmp", |
| ] |
| } |
| |
| cc_test_executable("virtualization_core_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "core_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//src/lib/json_parser", |
| "//third_party/googletest:gmock", |
| "//third_party/re2", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_core_tests_cmp") { |
| component_name = "virtualization_core_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_core_tests", |
| ] |
| manifest = "meta/virtualization_core_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_core_tests_pkg") { |
| package_name = "virtualization-core-tests" |
| test_components = [ ":virtualization_core_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_shutdown_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "shutdown_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//third_party/googletest:gmock", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_shutdown_tests_cmp") { |
| component_name = "virtualization_shutdown_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_shutdown_tests", |
| ] |
| manifest = "meta/virtualization_shutdown_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_shutdown_tests_pkg") { |
| package_name = "virtualization_shutdown_tests" |
| test_components = [ ":virtualization_shutdown_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_balloon_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_balloon_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_cpp", |
| "//sdk/lib/component/incoming/cpp", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//src/lib/json_parser", |
| "//third_party/googletest:gmock", |
| "//third_party/re2", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_balloon_tests_cmp") { |
| component_name = "virtualization_balloon_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_balloon_tests", |
| ] |
| manifest = "meta/virtualization_balloon_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_balloon_tests_pkg") { |
| package_name = "virtualization_balloon_tests" |
| test_components = [ ":virtualization_balloon_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_block_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_block_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//src/virtualization/bin/vmm/device:lib", |
| "//src/virtualization/bin/vmm/device:qcow_test_data", |
| "//third_party/googletest:gmock", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_block_tests_cmp") { |
| component_name = "virtualization_block_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_block_tests", |
| ] |
| manifest = "meta/virtualization_block_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_block_tests_pkg") { |
| package_name = "virtualization-block-tests" |
| test_components = [ ":virtualization_block_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_gpu_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_gpu_tests.cc" ] |
| |
| deps = [ |
| "lib:guest_console", |
| "lib:lib", |
| "lib:periodic_logger", |
| "lib:test_main", |
| "//sdk/fidl/fuchsia.ui.test.input:fuchsia.ui.test.input_hlcpp", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//third_party/googletest:gmock", |
| "//third_party/rapidjson", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_gpu_tests_cmp") { |
| component_name = "virtualization_gpu_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_gpu_tests", |
| ] |
| manifest = "meta/virtualization_gpu_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_gpu_tests_pkg") { |
| package_name = "virtualization-gpu-tests" |
| test_components = [ ":virtualization_gpu_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_vulkan_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_input_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_input_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/fidl/fuchsia.ui.test.input:fuchsia.ui.test.input_hlcpp", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_input_tests_cmp") { |
| component_name = "virtualization_input_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_input_tests", |
| ] |
| manifest = "meta/virtualization_input_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_input_tests_pkg") { |
| package_name = "virtualization-input-tests" |
| test_components = [ ":virtualization_input_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| # Require vulkan for UITestManager |
| environments = guest_vulkan_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_net_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_net_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//src/lib/inet", |
| "//third_party/googletest:gmock", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_net_tests_cmp") { |
| component_name = "virtualization_net_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_net_tests", |
| ] |
| manifest = "meta/virtualization_net_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_net_tests_pkg") { |
| package_name = "virtualization-net-tests" |
| test_components = [ ":virtualization_net_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_sound_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_sound_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//src/lib/files", |
| "//src/media/audio/audio_core/testing/integration:hermetic_audio_test", |
| "//src/media/audio/lib/format", |
| "//third_party/googletest:gmock", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_sound_tests_cmp") { |
| component_name = "virtualization_sound_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_sound_tests", |
| ] |
| manifest = "meta/virtualization_sound_tests.cml" |
| test_type = "system" |
| } |
| |
| audio_core_test_package("virtualization_sound_tests_pkg") { |
| package_name = "virtualization-sound-tests" |
| test_components = [ ":virtualization_sound_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| audio_core_manifest_shards = |
| [ "//src/media/audio/audio_core/meta/audio_core.shard.ultrasound.cml" ] |
| } |
| |
| cc_test_executable("virtualization_vsock_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_vsock_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//third_party/googletest:gmock", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_vsock_tests_cmp") { |
| component_name = "virtualization_vsock_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_vsock_tests", |
| ] |
| manifest = "meta/virtualization_vsock_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_vsock_tests_pkg") { |
| package_name = "virtualization-vsock-tests" |
| test_components = [ ":virtualization_vsock_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| cc_test_executable("virtualization_mem_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "virtio_mem_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:guest_console", |
| "lib:test_main", |
| "//sdk/fidl/fuchsia.kernel:fuchsia.kernel_cpp", |
| "//sdk/lib/component/incoming/cpp", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//src/lib/json_parser", |
| "//third_party/googletest:gmock", |
| "//third_party/re2", |
| ] |
| } |
| |
| fuchsia_test_component("virtualization_mem_tests_cmp") { |
| component_name = "virtualization_mem_tests" |
| deps = [ |
| ":test_images", |
| ":virtualization_mem_tests", |
| ] |
| manifest = "meta/virtualization_mem_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("virtualization_mem_tests_pkg") { |
| package_name = "virtualization_mem_tests" |
| test_components = [ ":virtualization_mem_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| environments = guest_envs |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| fuchsia_component("virtio_block_test_util_cmp") { |
| component_name = "virtio_block_test_util" |
| deps = [ "virtio_block_test_util" ] |
| manifest = "virtio_block_test_util/meta/virtio_block_test_util.cml" |
| } |
| |
| fuchsia_component("virtio_gpu_test_util_cmp") { |
| component_name = "virtio_gpu_test_util" |
| deps = [ "virtio_gpu_test_util" ] |
| manifest = "virtio_gpu_test_util/meta/virtio_gpu_test_util.cml" |
| } |
| |
| fuchsia_component("virtio_rng_test_util_cmp") { |
| component_name = "virtio_rng_test_util" |
| deps = [ "virtio_rng_test_util" ] |
| manifest = "virtio_rng_test_util/meta/virtio_rng_test_util.cml" |
| } |
| |
| fuchsia_component("virtio_net_test_util_cmp") { |
| component_name = "virtio_net_test_util" |
| deps = [ "virtio_net_test_util" ] |
| manifest = "virtio_net_test_util/meta/virtio_net_test_util.cml" |
| } |
| |
| fuchsia_component("virtio_vsock_test_util_cmp") { |
| component_name = "virtio_vsock_test_util" |
| deps = [ "virtio_vsock_test_util" ] |
| manifest = "virtio_vsock_test_util/meta/virtio_vsock_test_util.cml" |
| } |
| |
| fuchsia_component("memory_test_util_cmp") { |
| component_name = "memory_test_util" |
| deps = [ "memory_test_util" ] |
| manifest = "memory_test_util/meta/memory_test_util.cml" |
| } |
| |
| fuchsia_package("virtualization_test_utils_pkg") { |
| package_name = "virtualization-test-utils" |
| deps = [ |
| ":memory_test_util_cmp", |
| ":virtio_block_test_util_cmp", |
| ":virtio_gpu_test_util_cmp", |
| ":virtio_net_test_util_cmp", |
| ":virtio_rng_test_util_cmp", |
| ":virtio_vsock_test_util_cmp", |
| ] |
| } |
| |
| romfs_image("extras") { |
| testonly = true |
| |
| inputs = [ "//src/virtualization/tests/testdata/stereo_ramp_48khz_16bit.wav" ] |
| |
| # We don't run the container tests on arm64, so don't provide any container images to reduce the |
| # size of the tests. |
| # |
| # We also need internal_access because otherwise CIPD will not be able to resolve these files. |
| if (internal_access && target_cpu == "x64") { |
| inputs += [ |
| "//prebuilt/virtualization/packages/termina_guest/container/${target_cpu}/lxd.tar.xz", |
| "//prebuilt/virtualization/packages/termina_guest/container/${target_cpu}/rootfs.tar.xz", |
| ] |
| } |
| |
| output = "$target_out_dir/linux/extras.img" |
| } |
| |
| resource("linux_extras_img") { |
| testonly = true |
| sources = [ "$target_out_dir/linux/extras.img" ] |
| outputs = [ "data/extras.img" ] |
| deps = [ ":extras" ] |
| } |
| |
| cc_test_executable("termina_container_tests") { |
| visibility = [ ":*" ] |
| testonly = true |
| |
| sources = [ "termina_container_tests.cc" ] |
| |
| deps = [ |
| "lib", |
| "lib:test_main", |
| "//sdk/lib/sys/component/cpp/testing:cpp", |
| "//third_party/googletest:gtest", |
| ] |
| } |
| |
| fuchsia_test_component("termina_container_tests_cmp") { |
| component_name = "termina_container_tests" |
| deps = [ |
| ":termina_container_tests", |
| ":test_images", |
| ] |
| manifest = "meta/termina_container_tests.cml" |
| test_type = "system" |
| } |
| |
| fuchsia_test_package("termina_container_tests_pkg") { |
| package_name = "termina_container_tests" |
| test_components = [ ":termina_container_tests_cmp" ] |
| subpackages = guest_packages |
| test_specs = { |
| if (is_debug) { |
| # See https://fxbug.dev/42062247 for test timeouts when starting the container. |
| timeout_secs = 420 |
| } |
| environments = [ |
| nuc7_env, |
| nuc11_env, |
| ] |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |