| #!/usr/bin/env python3 |
| # 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. |
| # |
| # Runs tests for crosvm. |
| # |
| # See `ci/README.md` or `./run_tests -h` for more details. |
| |
| from typing import List, Dict |
| from ci.test_runner import Requirements, main |
| |
| # A list of all crates and their requirements |
| # See ci/test_runner.py for documentation on the requirements |
| CRATE_REQUIREMENTS: Dict[str, List[Requirements]] = { |
| "aarch64": [Requirements.AARCH64], |
| "acpi_tables": [], |
| "arch": [], |
| "assertions": [], |
| "base": [], |
| "bit_field": [], |
| "bit_field_derive": [], |
| "common/cros-fuzz": [Requirements.SEPARATE_WORKSPACE], |
| "common/p9": [Requirements.SEPARATE_WORKSPACE, Requirements.X86_64], |
| "cros_async": [Requirements.DISABLED], |
| "crosvm": [Requirements.DO_NOT_RUN], |
| "crosvm_plugin": [Requirements.X86_64], |
| "data_model": [], |
| "devices": [ |
| Requirements.SINGLE_THREADED, |
| Requirements.PRIVILEGED, |
| Requirements.X86_64, |
| ], |
| "disk": [Requirements.PRIVILEGED], |
| "enumn": [], |
| "fuse": [], |
| "fuzz": [Requirements.DISABLED], |
| "gpu_display": [], |
| "hypervisor": [Requirements.PRIVILEGED, Requirements.X86_64], |
| "integration_tests": [Requirements.PRIVILEGED, Requirements.X86_64], |
| "io_uring": [ |
| Requirements.SEPARATE_WORKSPACE, |
| Requirements.PRIVILEGED, |
| Requirements.SINGLE_THREADED, |
| ], |
| "kernel_cmdline": [], |
| "kernel_loader": [Requirements.PRIVILEGED], |
| "kvm_sys": [Requirements.PRIVILEGED], |
| "kvm": [Requirements.PRIVILEGED, Requirements.X86_64], |
| "libcrosvm_control": [], |
| "linux_input_sys": [], |
| "net_sys": [], |
| "net_util": [Requirements.PRIVILEGED], |
| "power_monitor": [], |
| "protos": [], |
| "qcow_utils": [], |
| "resources": [], |
| "rutabaga_gfx": [Requirements.PRIVILEGED], |
| "sync": [], |
| "sys_util": [Requirements.SINGLE_THREADED, Requirements.PRIVILEGED], |
| "poll_token_derive": [], |
| "tempfile": [], |
| "tpm2-sys": [], |
| "tpm2": [], |
| "usb_sys": [], |
| "usb_util": [], |
| "vfio_sys": [], |
| "vhost": [Requirements.PRIVILEGED], |
| "virtio_sys": [], |
| "vm_control": [], |
| "vm_memory": [Requirements.PRIVILEGED], |
| "x86_64": [Requirements.X86_64, Requirements.PRIVILEGED], |
| } |
| |
| # Just like for crates, lists requirements for each cargo feature flag. |
| FEATURE_REQUIREMENTS: Dict[str, List[Requirements]] = { |
| "chromeos": [Requirements.DISABLED], |
| "audio": [], |
| "gpu": [], |
| "plugin": [Requirements.PRIVILEGED, Requirements.X86_64], |
| "power-monitor-powerd": [Requirements.DISABLED], |
| "tpm": [], |
| "video-decoder": [Requirements.DISABLED], |
| "video-encoder": [Requirements.DISABLED], |
| "wl-dmabuf": [Requirements.DISABLED], |
| "x": [], |
| "virgl_renderer_next": [], |
| "composite-disk": [], |
| "virgl_renderer": [], |
| "gfxstream": [Requirements.DISABLED], |
| "gdb": [], |
| } |
| |
| main(CRATE_REQUIREMENTS, FEATURE_REQUIREMENTS) |