1{ 2 "tests": true, 3 "features": [ 4 "android-sparse", 5 "audio", 6 "balloon", 7 // TODO: The "protos" crate has been modified such that it doesn't work with cargo. If we fix that, 8 // we can remove a some patch files and enable "composite-disk" here. 9 // "composite-disk", 10 "gdb", 11 "geniezone", 12 "gunyah", 13 "qcow", 14 "usb", 15 // TODO: Enable these in the root crate instead. May be difficult because of host-vs-device 16 // difference that are handled in patches in, e.g., the "devices" crate. 17 "rutabaga_gfx/virgl_renderer", 18 "rutabaga_gfx/virgl_renderer_next" 19 ], 20 "workspace": true, 21 "workspace_excludes": [ 22 "audio_streams_conformance_test", 23 "baremetal", 24 "catapult_converter", 25 "cros_asyncv2", 26 "cros_fuzz", 27 "crosvm-fuzz", 28 "crosvm_plugin", 29 "e2e_tests", 30 "ffmpeg", 31 "fixture", 32 "gpu_buffer", 33 "libva", 34 "libvda", 35 "p9-fuzz", 36 "prebuilts", 37 "proto_build_tools", 38 "qcow_utils", 39 "rutabaga_gfx_ffi", 40 "sandbox", 41 "swap", 42 "system_api", 43 "tpm2", 44 "tpm2-sys", 45 "tube_transporter", 46 "win_audio", 47 "win_util" 48 ], 49 "global_defaults": "crosvm_inner_defaults", 50 "apex_available": [], 51 "module_name_overrides": { 52 "libbase": "libbase_rust", 53 "libbase64": "libbase64_rust", 54 "libfuse": "libfuse_rust", 55 "liblog": "liblog_rust", 56 "libminijail": "libminijail_rust", 57 "libprotobuf": "libprotobuf_deprecated", 58 "libsync": "libsync_rust", 59 "libx86_64": "libx86_64_rust" 60 }, 61 "module_blocklist": [ 62 // TODO: These are all for workspace_excludes package. Maybe use the option to 63 // also block all blueprint modules for excluded packages. 64 "liblibva", 65 "libprebuilts", 66 "libproto_build_tools", 67 "libva_test_src_lib", 68 "proto_build_tools_test_src_lib", 69 // Flaky with ENOMEM. We don't use io_uring yet, so turning it off for now. 70 "io_uring_test_tests_uring", 71 // These are all tests that cargo2android.py ignored, probably because the 72 // `cargo test` run reported 0 tests. 73 // TODO: replicate the empty test detection if this list is annoying to maintain. 74 "aarch64_test_src_lib", 75 "anti_tamper_test_src_lib", 76 "argh_helpers_test_src_lib", 77 "balloon_control_test_src_lib", 78 "bit_field_derive_test_bit_field_derive", 79 "bit_field_test_src_lib", 80 "broker_ipc_test_src_lib", 81 "crash_report_test_src_lib", 82 "cros_tracing_test_src_lib", 83 "crosvm_cli_test_src_lib", 84 "crosvm_control_test_src_lib", 85 "crosvm_test_tests_plugins", 86 "gpu_display_test_examples_simple", 87 "gpu_display_test_examples_simple_open", 88 "gpu_display_test_src_lib", 89 "hypervisor_test_src_lib", 90 "hypervisor_test_tests_mmio_fetch_memory", 91 "io_uring_test_src_lib", 92 "kvm_sys_test_src_lib", 93 "kvm_test_src_lib", 94 "libcras_test_src_libcras", 95 "linux_input_sys_test_src_lib", 96 "metrics_test_src_lib", 97 "net_sys_test_src_lib", 98 "power_monitor_test_src_lib", 99 "prebuilts_test_src_lib", 100 "protos_test_src_lib", 101 "serde_keyvalue_derive_test_src_lib", 102 "sync_test_src_lib", 103 "usb_sys_test_src_lib", 104 "vfio_sys_test_src_lib", 105 "vhost_test_src_lib", 106 "virtio_sys_test_src_lib", 107 "wire_format_derive_test_wire_format_derive" 108 ], 109 "module_visibility": { 110 "crosvm": [ 111 "//visibility:public" 112 ], 113 "libaarch64": [ 114 // For QCOM's crosvm fork. 115 "//vendor:__subpackages__" 116 ], 117 "libbase_rust": [ 118 "//packages/modules/Virtualization/virtualizationmanager", 119 // For QCOM's crosvm fork. 120 "//vendor:__subpackages__" 121 ], 122 "libdata_model": [ 123 "//external/libchromeos-rs", 124 "//packages/modules/Virtualization/apkdmverity", 125 "//packages/modules/Virtualization/libs/devicemapper" 126 ], 127 "libdevices": [ 128 // For QCOM's crosvm fork. 129 "//vendor:__subpackages__" 130 ], 131 "libdisk": [ 132 "//packages/modules/Virtualization/virtualizationmanager", 133 // For QCOM's crosvm fork. 134 "//vendor:__subpackages__" 135 ], 136 "libfuse_rust": [ 137 "//packages/modules/Virtualization/authfs", 138 "//packages/modules/Virtualization/zipfuse" 139 ], 140 "libhypervisor": [ 141 // For QCOM's crosvm fork. 142 "//vendor:__subpackages__" 143 ], 144 "libsync_rust": [ 145 // For QCOM's crosvm fork. 146 "//vendor:__subpackages__" 147 ], 148 "libvm_control": [ 149 "//packages/modules/Virtualization/virtualizationmanager" 150 ], 151 "libvm_memory": [ 152 // For QCOM's crosvm fork. 153 "//vendor:__subpackages__" 154 ] 155 }, 156 "package": { 157 "aarch64": { 158 "add_module_block": "aarch64/cargo2android_arch.bp" 159 }, 160 "base": { 161 "patch": "base/patches/Android.bp.patch", 162 "dep_blocklist": [ 163 // "libtest_mimic" is needed for "base_test_tests_process" which is 164 // currently ignored by cargo_embargo because it is a "harness-less" 165 // test. cargo_embargo incorrectly thinks the dependency is needed for 166 // other tests in the "process" package, so we need to manually block 167 // it here. 168 "liblibtest_mimic" 169 ] 170 }, 171 "base_event_token_derive": { 172 // TODO: This is a proc macro crate. Should disable device tests by default for them. 173 "device_supported": false 174 }, 175 "cros_async": { 176 "no_presubmit": true 177 }, 178 "crosvm": { 179 "no_presubmit": true, 180 "add_toplevel_block": "cargo2android_defaults.bp", 181 "add_module_block": "cargo2android_module.bp.patch", 182 // Keep cargo2android from adding ISA specific deps so that we can add them 183 // correctly via patches. 184 "dep_blocklist": [ 185 "libx86_64_rust", 186 "libaarch64_rust" 187 ], 188 "patch": "patches/Android.bp.patch" 189 }, 190 "crosvm_control": { 191 "patch": "crosvm_control/cargo2android.bp.patch" 192 }, 193 "devices": { 194 "no_presubmit": true, 195 "add_module_block": "devices/cargo2android_libs.bp.patch", 196 "dep_blocklist": [ 197 // See the comment for base's "dep_blocklist" above (in this case 198 // "devices_test_tests_passthroughfs_main" is the culprit). 199 "liblibtest_mimic" 200 ] 201 }, 202 "disk": { 203 "patch": "disk/patches/Android.bp.patch" 204 }, 205 "gpu_display": { 206 "add_toplevel_block": "gpu_display/cargo2android.bp", 207 "patch": "gpu_display/patches/Android.bp.patch" 208 }, 209 "hypervisor": { 210 "no_presubmit": true 211 }, 212 "io_uring": { 213 "no_presubmit": true 214 }, 215 "kvm": { 216 "no_presubmit": true 217 }, 218 "kvm_sys": { 219 "no_presubmit": true 220 }, 221 "metrics": { 222 "copy_out": true 223 }, 224 "net_util": { 225 "no_presubmit": true 226 }, 227 "power_monitor": { 228 "copy_out": true 229 }, 230 "protos": { 231 "add_toplevel_block": "protos/cargo2android_protobuf.bp", 232 "patch": "protos/patches/Android.bp.patch" 233 }, 234 "rutabaga_gfx": { 235 "patch": "rutabaga_gfx/patches/Android.bp.patch" 236 }, 237 "vhost": { 238 "no_presubmit": true 239 }, 240 "vm_control": { 241 "add_module_block": "vm_control/cargo2android.bp.patch" 242 }, 243 "x86_64": { 244 "no_presubmit": true, 245 "add_module_block": "x86_64/cargo2android_gdb.bp.patch" 246 } 247 } 248} 249