mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 10:32:10 +00:00
Run tests for sys_util_core, poll_token_derive and balloon_control on windows. Using dotfiles to disable/serialize test runs of a subset of crates does not work well with third party crates as it forces us to commit the dot file to the crate. The patch modifies and uses the script that runs linux tests. This patch also allows us to - build/test child crate even if parent crate has disabled build/test. - avoid building crosvm if it is not explicitly specified. RIP short lived .windows_build_test_skip. You allowed us to run noop kokoro tests. Test: py .\tools\impl\test_runner.py --arch x86_64 Bug: b:215610772 Change-Id: Icc6d04ffd7c0c33d4f60aeac16fc7d23881c387d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3459809 Reviewed-by: Dennis Kempin <denniskempin@google.com> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Vikram Auradkar <auradkar@google.com>
155 lines
6.4 KiB
Python
Executable file
155 lines
6.4 KiB
Python
Executable file
# Copyright 2021 The Chromium OS 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 enum
|
|
import os
|
|
|
|
|
|
class TestOption(enum.Enum):
|
|
# Do not build tests for all, or just some platforms.
|
|
DO_NOT_BUILD = "do_not_build"
|
|
DO_NOT_BUILD_AARCH64 = "do_not_build_aarch64"
|
|
DO_NOT_BUILD_ARMHF = "do_not_build_armhf"
|
|
DO_NOT_BUILD_X86_64 = "do_not_build_x86_64"
|
|
|
|
# Build tests, but do not run for all, or just some platforms.
|
|
DO_NOT_RUN = "do_not_run"
|
|
DO_NOT_RUN_ARMHF = "do_not_run_armhf"
|
|
DO_NOT_RUN_AARCH64 = "do_not_run_aarch64"
|
|
DO_NOT_RUN_X86_64 = "do_not_run_x86_64"
|
|
|
|
# Do not run on foreign architecture kernel (e.g. running armhf on aarch64
|
|
# or running aarch64 on the host with user-space emulation)
|
|
# This option is expected on tests that use kernel APIs not supported in
|
|
# user space emulation or in armhf compatibility mode (most notably
|
|
# /dev/kvm usage)
|
|
DO_NOT_RUN_ON_FOREIGN_KERNEL = "do_not_run_on_foreign_kernel"
|
|
|
|
# Run tests single-threaded
|
|
SINGLE_THREADED = "single_threaded"
|
|
|
|
# This test needs longer than usual to run.
|
|
LARGE = "large"
|
|
|
|
|
|
# Configuration to restrict how and where tests of a certain crate can
|
|
# be build and run.
|
|
#
|
|
# Please add a bug number when restricting a tests.
|
|
if os.name == "posix":
|
|
CRATE_OPTIONS: dict[str, list[TestOption]] = {
|
|
"aarch64": [TestOption.DO_NOT_BUILD_X86_64, TestOption.DO_NOT_BUILD_ARMHF], # b/210015864
|
|
"cros_async": [TestOption.LARGE],
|
|
"crosvm_plugin": [TestOption.DO_NOT_BUILD_AARCH64, TestOption.DO_NOT_BUILD_ARMHF],
|
|
"devices": [
|
|
TestOption.SINGLE_THREADED,
|
|
TestOption.LARGE,
|
|
TestOption.DO_NOT_RUN_ON_FOREIGN_KERNEL,
|
|
],
|
|
"disk": [TestOption.DO_NOT_RUN_AARCH64, TestOption.DO_NOT_RUN_ARMHF], # b/202294155
|
|
"crosvm-fuzz": [TestOption.DO_NOT_BUILD], # b/194499769
|
|
"fuzz": [TestOption.DO_NOT_BUILD], # b/194499769
|
|
"hypervisor": [
|
|
TestOption.DO_NOT_RUN_AARCH64,
|
|
TestOption.DO_NOT_RUN_ON_FOREIGN_KERNEL,
|
|
], # b/181672912
|
|
"integration_tests": [ # b/180196508
|
|
TestOption.SINGLE_THREADED,
|
|
TestOption.LARGE,
|
|
TestOption.DO_NOT_RUN_AARCH64,
|
|
TestOption.DO_NOT_RUN_ON_FOREIGN_KERNEL,
|
|
],
|
|
"io_uring": [TestOption.DO_NOT_RUN], # b/202294403
|
|
"kvm_sys": [TestOption.DO_NOT_RUN_ON_FOREIGN_KERNEL],
|
|
"kvm": [
|
|
TestOption.DO_NOT_RUN_AARCH64,
|
|
TestOption.DO_NOT_RUN_ON_FOREIGN_KERNEL,
|
|
], # b/181674144
|
|
"libcras_stub": [TestOption.DO_NOT_BUILD], # empty stub crate
|
|
"libvda": [TestOption.DO_NOT_BUILD], # b/202293971
|
|
"system_api_stub": [TestOption.DO_NOT_BUILD], # empty stub crate
|
|
"x86_64": [TestOption.DO_NOT_BUILD_AARCH64, TestOption.DO_NOT_BUILD_ARMHF],
|
|
"sys_util": [TestOption.SINGLE_THREADED],
|
|
"sys_util_core": [TestOption.SINGLE_THREADED],
|
|
"rutabaga_gfx": [TestOption.DO_NOT_BUILD_ARMHF], # b/210015864
|
|
"vhost": [TestOption.DO_NOT_RUN_ON_FOREIGN_KERNEL],
|
|
"vm_control": [TestOption.DO_NOT_BUILD_ARMHF], # b/210015864
|
|
"libcrosvm_control": [TestOption.DO_NOT_BUILD_ARMHF], # b/210015864
|
|
}
|
|
|
|
BUILD_FEATURES: dict[str, str] = {
|
|
"x86_64": "all-linux",
|
|
"aarch64": "all-linux",
|
|
"armhf": "all-linux-armhf",
|
|
}
|
|
elif os.name == "nt":
|
|
CRATE_OPTIONS: dict[str, list[TestOption]] = {
|
|
"aarch64": [TestOption.DO_NOT_BUILD],
|
|
"acpi_tables": [TestOption.DO_NOT_BUILD],
|
|
"arch": [TestOption.DO_NOT_BUILD],
|
|
"assertions": [TestOption.DO_NOT_BUILD],
|
|
"audio_streams": [TestOption.DO_NOT_BUILD],
|
|
"balloon_control": [],
|
|
"base": [TestOption.DO_NOT_BUILD],
|
|
"bit_field_derive": [TestOption.DO_NOT_BUILD],
|
|
"bit_field": [TestOption.DO_NOT_BUILD],
|
|
"cros_async": [TestOption.DO_NOT_BUILD],
|
|
"cros_asyncv2": [TestOption.DO_NOT_BUILD],
|
|
"cros-fuzz": [TestOption.DO_NOT_BUILD],
|
|
"crosvm_control": [TestOption.DO_NOT_BUILD],
|
|
"crosvm_plugin": [TestOption.DO_NOT_BUILD],
|
|
"crosvm-fuzz": [TestOption.DO_NOT_BUILD],
|
|
"crosvm": [TestOption.DO_NOT_BUILD],
|
|
"data_model": [TestOption.DO_NOT_BUILD],
|
|
"devices": [TestOption.DO_NOT_BUILD],
|
|
"disk": [TestOption.DO_NOT_BUILD],
|
|
"ffi": [TestOption.DO_NOT_BUILD],
|
|
"fuse": [TestOption.DO_NOT_BUILD],
|
|
"fuzz": [TestOption.DO_NOT_BUILD],
|
|
"gpu_display": [TestOption.DO_NOT_BUILD],
|
|
"hypervisor": [TestOption.DO_NOT_BUILD],
|
|
"integration_tests": [TestOption.DO_NOT_BUILD],
|
|
"io_uring": [TestOption.DO_NOT_BUILD],
|
|
"kernel_cmdline": [TestOption.DO_NOT_BUILD],
|
|
"kernel_loader": [TestOption.DO_NOT_BUILD],
|
|
"kvm_sys": [TestOption.DO_NOT_BUILD],
|
|
"kvm": [TestOption.DO_NOT_BUILD],
|
|
"libcras_stub": [TestOption.DO_NOT_BUILD],
|
|
"libvda": [TestOption.DO_NOT_BUILD],
|
|
"linux_input_sys": [TestOption.DO_NOT_BUILD],
|
|
"minijail-sys": [TestOption.DO_NOT_BUILD],
|
|
"minijail": [TestOption.DO_NOT_BUILD],
|
|
"net_sys": [TestOption.DO_NOT_BUILD],
|
|
"net_util": [TestOption.DO_NOT_BUILD],
|
|
"p9": [TestOption.DO_NOT_BUILD],
|
|
"poll_token_derive": [],
|
|
"power_monitor": [TestOption.DO_NOT_BUILD],
|
|
"protos": [TestOption.DO_NOT_BUILD],
|
|
"qcow_utils": [TestOption.DO_NOT_BUILD],
|
|
"resources": [TestOption.DO_NOT_BUILD],
|
|
"rutabaga_gfx": [TestOption.DO_NOT_BUILD],
|
|
"rutabaga_gralloc": [TestOption.DO_NOT_BUILD],
|
|
"sync": [TestOption.DO_NOT_BUILD],
|
|
"sys_util": [TestOption.DO_NOT_BUILD],
|
|
"sys_util_core": [],
|
|
"system_api_stub": [TestOption.DO_NOT_BUILD],
|
|
"tpm2-sys": [TestOption.DO_NOT_BUILD],
|
|
"tpm2": [TestOption.DO_NOT_BUILD],
|
|
"usb_sys": [TestOption.DO_NOT_BUILD],
|
|
"usb_util": [TestOption.DO_NOT_BUILD],
|
|
"vfio_sys": [TestOption.DO_NOT_BUILD],
|
|
"vhost": [TestOption.DO_NOT_BUILD],
|
|
"virtio_sys": [TestOption.DO_NOT_BUILD],
|
|
"vm_control": [TestOption.DO_NOT_BUILD],
|
|
"vm_memory": [TestOption.DO_NOT_BUILD],
|
|
"vmm_vhost": [TestOption.DO_NOT_BUILD],
|
|
"wire_format_derive": [TestOption.DO_NOT_BUILD],
|
|
"x86_64": [TestOption.DO_NOT_BUILD],
|
|
}
|
|
|
|
BUILD_FEATURES: dict[str, str] = {
|
|
"x86_64": "",
|
|
}
|
|
else:
|
|
raise Exception(f"Unsupported build target: {os.name}")
|