blob: 693ead5350def8cb2a6cb2c60971a2dd6b3f7949 [file]
# 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"
},
]
}