#!/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.CROS_BUILD, 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": [Requirements.CROS_BUILD], "plugin": [Requirements.PRIVILEGED, Requirements.X86_64], "power-monitor-powerd": [Requirements.DISABLED], "tpm": [Requirements.CROS_BUILD], "video-decoder": [Requirements.DISABLED], "video-encoder": [Requirements.DISABLED], "wl-dmabuf": [Requirements.DISABLED], "x": [], "virgl_renderer_next": [Requirements.CROS_BUILD], "composite-disk": [], "virgl_renderer": [Requirements.CROS_BUILD], "gfxstream": [Requirements.DISABLED], "gdb": [], } main(CRATE_REQUIREMENTS, FEATURE_REQUIREMENTS)