| # 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/package.gni") |
| import("//build/test/test_package.gni") |
| import("//build/testing/environments.gni") |
| |
| # Packages required to run the guest integration tests. |
| guest_packages = [ |
| ":guest_integration_tests_utils", |
| "//garnet/packages/prod:guest_runner", |
| "//src/virtualization/bin/guest_manager", |
| "//src/virtualization/packages/debian_guest", |
| "//src/virtualization/packages/zircon_guest", |
| ] |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":bin", |
| ":guest_integration_tests", |
| ":guest_integration_tests_utils", |
| ":guest_unit_tests", |
| "virtio_block_test_util", |
| "virtio_net_test_util", |
| "virtio_rng_test_util", |
| "virtio_vsock_test_util", |
| ] |
| |
| # Ensure guest packages are available in the manifest. |
| data_deps = guest_packages |
| } |
| |
| source_set("guest_console") { |
| visibility = [ ":*" ] |
| sources = [ |
| "guest_console.cc", |
| "guest_console.h", |
| "logger.cc", |
| "logger.h", |
| "socket.cc", |
| "socket.h", |
| ] |
| deps = [ |
| "//garnet/lib/inet", |
| "//garnet/public/lib/svc/cpp", |
| "//sdk/fidl/fuchsia.netstack", |
| "//sdk/fidl/fuchsia.virtualization", |
| "//src/lib/fxl", |
| "//zircon/public/lib/fbl", |
| ] |
| public_deps = [ |
| "//zircon/public/lib/zx", |
| ] |
| } |
| |
| executable("unit_tests") { |
| testonly = true |
| output_name = "guest_unit_tests" |
| sources = [ |
| "guest_console_test.cc", |
| ] |
| deps = [ |
| ":guest_console", |
| "//src/lib/fxl/test:gtest_main", |
| "//third_party/googletest:gmock", |
| "//third_party/googletest:gtest", |
| ] |
| } |
| |
| executable("bin") { |
| visibility = [ ":*" ] |
| output_name = "guest_integration_tests" |
| testonly = true |
| |
| sources = [ |
| "enclosed_guest.cc", |
| "enclosed_guest.h", |
| "fake_scenic.cc", |
| "fake_scenic.h", |
| "guest_test.h", |
| "main.cc", |
| "mock_netstack.cc", |
| "mock_netstack.h", |
| "periodic_logger.cc", |
| "periodic_logger.h", |
| "virtio_block_tests.cc", |
| "virtio_gpu_tests.cc", |
| "virtio_net_tests.cc", |
| "virtio_vsock_tests.cc", |
| ] |
| |
| # Architecture-specific tests. |
| if (target_cpu != "arm64") { |
| # TODO(MAC-256): Input tests don't currently work on the ARM Linux images. |
| sources += [ "virtio_input_tests.cc" ] |
| } |
| |
| deps = [ |
| ":guest_console", |
| "//garnet/lib/inet", |
| "//garnet/public/lib/fostr", |
| "//garnet/public/lib/fostr/fidl/fuchsia.ui.gfx", |
| "//garnet/public/lib/fostr/fidl/fuchsia.ui.scenic", |
| "//garnet/public/lib/svc/cpp", |
| "//sdk/fidl/fuchsia.netstack", |
| "//sdk/fidl/fuchsia.ui.scenic", |
| "//sdk/fidl/fuchsia.virtualization", |
| "//sdk/lib/sys/cpp/testing:integration", |
| "//src/lib/fxl", |
| "//src/lib/fxl/test:test_settings", |
| "//src/virtualization/bin/vmm/device", |
| "//src/virtualization/bin/vmm/device:qcow_test_data", |
| "//third_party/googletest:gmock", |
| "//third_party/googletest:gtest", |
| "//zircon/public/lib/fbl", |
| ] |
| } |
| |
| unittest_package("guest_unit_tests") { |
| deps = [ |
| ":unit_tests", |
| ] |
| |
| tests = [ |
| { |
| name = "guest_unit_tests" |
| environments = basic_envs |
| }, |
| ] |
| } |
| |
| test_package("guest_integration_tests") { |
| deps = [ |
| ":bin", |
| ] |
| |
| # Integration tests rely on launching Debian, Zircon and the guest_manager. |
| data_deps = guest_packages |
| |
| tests = [ |
| { |
| name = "guest_integration_tests" |
| environments = [ |
| nuc_env, |
| vim2_env, |
| ] |
| }, |
| ] |
| } |
| |
| package("guest_integration_tests_utils") { |
| deps = [ |
| "virtio_block_test_util", |
| "virtio_net_test_util", |
| "virtio_rng_test_util", |
| "virtio_vsock_test_util", |
| ] |
| |
| meta = [ |
| { |
| path = |
| rebase_path("virtio_block_test_util/meta/virtio_block_test_util.cmx") |
| dest = "virtio_block_test_util.cmx" |
| }, |
| { |
| path = rebase_path("virtio_rng_test_util/meta/virtio_rng_test_util.cmx") |
| dest = "virtio_rng_test_util.cmx" |
| }, |
| { |
| path = rebase_path("virtio_net_test_util/meta/virtio_net_test_util.cmx") |
| dest = "virtio_net_test_util.cmx" |
| }, |
| { |
| path = |
| rebase_path("virtio_vsock_test_util/meta/virtio_vsock_test_util.cmx") |
| dest = "virtio_vsock_test_util.cmx" |
| }, |
| ] |
| |
| binaries = [ |
| { |
| name = "virtio_block_test_util" |
| }, |
| { |
| name = "virtio_net_test_util" |
| }, |
| { |
| name = "virtio_rng_test_util" |
| }, |
| { |
| name = "virtio_vsock_test_util" |
| }, |
| ] |
| } |