Daniel Erat | 599e024 | 2018-09-15 00:52:55 | [diff] [blame] | 1 | # Tast Test Dependencies (go/tast-deps) |
Daniel Erat | 5b270ed | 2018-05-02 05:37:54 | [diff] [blame] | 2 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 3 | A test may specify software or hardware features that must be supported on the DUT |
| 4 | in order for the test to run successfully. If one or more features aren't |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 5 | supported by the DUT, the test will usually be skipped. See the `tast` command's |
| 6 | `-checktestdeps` flag to control this behavior. |
Daniel Erat | 5b270ed | 2018-05-02 05:37:54 | [diff] [blame] | 7 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 8 | Tests specify dependencies through the `SoftwareDeps` and `HardwareDeps` fields in [testing.Test]. |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 9 | |
Seewai Fu | d948221 | 2023-04-25 01:50:57 | [diff] [blame] | 10 | [testing.Test]: https://godoc.org/chromium.googlesource.com/chromiumos/platform/tast.git/src/go.chromium.org/tast/core/testing#Test |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 11 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 12 | ## Software dependencies |
| 13 | |
| 14 | ### Existing features |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 15 | |
Daniel Erat | 5b270ed | 2018-05-02 05:37:54 | [diff] [blame] | 16 | The following software features are defined: |
| 17 | |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 18 | * `amd64` - The [amd64] processor architecture. |
| 19 | * `amd_cpu` - Boards that contain an AMD application processor. |
| 20 | * `android_vm` - The ability to [run Android apps] in VM instead of container. |
Yusuke Sato | 9e6ec72 | 2020-04-09 01:25:14 | [diff] [blame] | 21 | Any version of Android R+ can be used. Prefer this over `android_vm_r` if possible. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 22 | * `android_vm_r` - `android_vm` feature that runs in R VM. |
| 23 | * `android_p` - The ability to [run Android apps] that require Android P. |
| 24 | * `arc` - The ability to [run Android apps] in any way, in VM or container, |
Yusuke Sato | 2e203bd | 2020-02-20 00:41:32 | [diff] [blame] | 25 | with any Android version. This is intended to be used to run non-ARC tests |
| 26 | only when ARC is supported on the board. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 27 | * `arc32` - Runs 32-bit Android primary ABI. |
| 28 | * `arc64` - Runs 64-bit Android primary ABI, may or may not have 32-bit support. |
| 29 | * `arc_android_data_cros_access` - The ability to access Android's /data directory from ChromeOS. |
Momoko Hattori | e76a1c3 | 2022-08-05 13:26:54 | [diff] [blame] | 30 | For ARCVM virtio-blk /data devices, this only ensures that we can mount the virtio-blk disk |
| 31 | image of Android's /data directory on the host, and does not grant an automatic access to |
| 32 | Android's /data directory from the host side. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 33 | * `arc_camera3` - Using [Camera HAL3] interface in Chrome and Android. |
| 34 | * `arc_launched_32bit` - This platform originally launched with 32-bit Android. |
| 35 | * `arc_launched_64bit` - This platform originally launched with 64-bit Android. |
| 36 | * `arm` - The [arm] 32 and 64 bit processor architecture. |
| 37 | * `aslr` - Address space layout randomization, which mitigates buffer-overflow |
Eric Caruso | 6ca58ce | 2018-12-04 00:38:38 | [diff] [blame] | 38 | attacks, is functional (this is not true for builds with [AddressSanitizer] |
| 39 | instrumentation built in). |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 40 | * `auto_update_stable` - No suffix like -kernelnext and -arc-r in the board name. |
Yi Xie | 397d515 | 2022-05-12 06:02:52 | [diff] [blame] | 41 | Auto update to a stable version is possible. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 42 | * `autotest-capability:foo` - An [Autotest capability] named `foo`. See below. |
| 43 | * `biometrics_daemon` - The ability to process fingerprint authentication. |
Yicheng Li | 70d8cc3 | 2019-06-05 21:09:07 | [diff] [blame] | 44 | This implies the presence of the `biod` package. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 45 | * `bluetooth_floss` - Excludes boards that do not support the floss bluetooth adapter. |
| 46 | * `boot_perf_info` - Reven (ChromeOS Flex) doesn't support boot performance metrics. |
| 47 | * `borealis_host` - Boards that can host the Borealis system. |
Po-Hsien Wang | 04c5840 | 2023-06-06 23:13:28 | [diff] [blame] | 48 | * borealis_nvidia - Boards that use nvidia supported Borealis system. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 49 | * `bpf` - Whether the platform (kernel) has the bpf syscall enabled. |
| 50 | * `breakpad` - Whether the platform supports the breakpad crash handler |
Ian Barkley-Yeung | 3ff970d | 2020-01-17 03:59:33 | [diff] [blame] | 51 | for Chrome. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 52 | * `camera_720p` - The ability to capture video with frame size 1280x720. |
| 53 | * `camera_app` - The ability to run the builtin camera app. |
| 54 | * `camera_feature_auto_framing` - Whether Auto Framing is enabled on this platform. |
| 55 | * `camera_feature_effects` - Whether camera effects are enabled on this platform. |
| 56 | * `camera_feature_hdrnet` - Whether HDRnet is enabled on this platform. |
| 57 | * `camera_feature_portrait_mode` - Whether Portrait Mode is enabled on this platform. |
| 58 | * `cert_provision` - The ability to use an additional cert_provision library |
Yi Chou | 4e6cf3b | 2020-10-29 08:42:53 | [diff] [blame] | 59 | that supports an interface for provisioning machine-wide certificates and |
| 60 | using them for signing data on top of cryptohome dbus interface. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 61 | * `chrome` - Support for performing user login via Chrome (i.e. using |
Daniel Erat | 75160d4 | 2019-05-15 20:18:09 | [diff] [blame] | 62 | `session_manager` and `cryptohome`). This also implies that the |
| 63 | [chromeos-chrome] Portage package is installed (which also installs Chrome |
| 64 | binary tests), and that the `ui` Upstart job is present. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 65 | * `chromeless` - Explicit *lack* of support for login via Chrome. |
| 66 | * `chromeos_firmware` - Boards that use ChromeOS firmware. |
| 67 | * `chromeos_kernelci` - Whether the image built for https://chromeos.kernelci.org/ or not. |
| 68 | * `chrome_internal` - Functionality that is only available in internal builds |
Madhulika | 2955f68 | 2020-05-18 18:42:45 | [diff] [blame] | 69 | of Chrome (e.g. official branding). Any test that specifies this dependency |
| 70 | should also explicitly specify a `chrome` dependency. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 71 | * `coresched` - Whether device supports core scheduling feature for secure HT. |
| 72 | * `cpuidle_teo` - Availability of the TEO cpuidle governor. |
Pattara Teerapong | 6a8a172 | 2023-05-03 09:57:00 | [diff] [blame] | 73 | * `cpu_heterogeneous` - Whether device has heterogeneous CPU topology. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 74 | * `cpu_vuln_sysfs` - Whether the platform has /sys/devices/system/cpu/vulnerabilities sysfs files |
| 75 | * `cras` - Whether the platform supports the ChromeOS Audio Server. |
| 76 | * `crashpad` - Whether the platform supports the crashpad crash handler for |
Ian Barkley-Yeung | 9e7307a | 2020-03-03 03:42:11 | [diff] [blame] | 77 | Chrome. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 78 | * `cros_internal` - Functionality that is only available in internal builds of |
Jesse McGuire | 84c0970 | 2022-05-06 23:17:29 | [diff] [blame] | 79 | ChromeOS (i.e. ones built using `chromeos-overlay`). |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 80 | * `crossystem` - ChromeOS firmware/system interface utility. |
| 81 | * `crostini_stable` - Boards that can run Crostini tests reliably. |
| 82 | * `crostini_unstable` - Boards that cannot run Crostini tests reliably. |
| 83 | * `crosvm_gpu` - Boards that use hardware GPU acceleration in the guest VM environment. |
| 84 | * `crosvm_no_gpu` - Boards that use software GPU emulation in the guest VM environment. |
David Stevens | fc50613 | 2023-05-16 11:06:01 | [diff] [blame] | 85 | * `crosvm_swap - Boards that have crosvm's vmm-swap feature enabled. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 86 | * `cups` - CUPS daemon. |
| 87 | * `device_crash` - Boards that can recover gracefully after a hard crash (e.g. |
Miriam Zimmerman | 23fa220 | 2020-11-03 23:35:00 | [diff] [blame] | 88 | kernel crash) |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 89 | * `diagnostics` - Boards that contain generic cross-platform |
Trent Begin | 4d27476 | 2019-05-29 22:01:57 | [diff] [blame] | 90 | [Diagnostic utilities]. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 91 | * `dlc` - Support of [Downloadable Content] (DLC). |
| 92 | * `dmverity_stable` - Kernels with which dm-verity runs stably. See [b/172227689](https://b.corp.google.com/issues/172227689). |
| 93 | * `dmverity_unstable` - Kernels having known issue of dm-verity causing random crashes. See [b/172227689](https://b.corp.google.com/issues/172227689). |
| 94 | * `dptf` - Support of [Intel Dynamic Platform and Thermal Framework] (DPTF). |
| 95 | * `drivefs` - Google Drive support enabled. |
| 96 | * `drm_atomic` - The [DRM/KMS] kernel subsystem supports atomic commits. |
| 97 | * `drm_trace` - The [DRM/KMS] kernel subsystem supports tracing using tracefs. |
| 98 | * `ec_crash` - Boards that have EC firmware, implement the `crash` EC command, |
Miriam Zimmerman | 23fa220 | 2020-11-03 23:35:00 | [diff] [blame] | 99 | and produce a panicinfo file after a crash. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 100 | * `ec_system_safe_mode` - Boards that have support for EC system safe mode, |
Rob Barnes | 482d182 | 2023-02-23 16:37:52 | [diff] [blame] | 101 | which allows for collecting additional debug info after a crash. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 102 | * `endorsement` - Whether the system have a valid endorsement certificate. |
| 103 | * `faceauth` - Whether the system has faceauth functionality enabled, go/cros-faceauth. |
| 104 | * `factory_flow`- Device is subject to the [go/chromeos-factory-flow](http://go/chromeos-factory-flow) (e.g. most devices). |
| 105 | * `fake_hps` - Whether the HPS daemon (go/cros-hps) uses a fake software |
Dan Callaghan | 29c250f | 2022-06-27 05:36:27 | [diff] [blame] | 106 | device for testing purposes. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 107 | * `firewall` - Standard ChromeOS network firewall rules. |
| 108 | * `flashrom` - Userspace utility to update firmware. |
| 109 | * `flex_id` - Enable using [flex_id](http://go/chromeos-flex-id) for enrollment. |
| 110 | * `ghostscript` - Ghostscript and dependent packages are available for printing. |
| 111 | * `google_virtual_keyboard` - The proprietary Google onscreen virtual keyboard |
Daniel Erat | 0c2e3b8 | 2019-04-15 04:43:52 | [diff] [blame] | 112 | (as opposed to the builtin open-source virtual keyboard). |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 113 | * `gpu_sandboxing` - Chrome's GPU process is [sandboxed]. |
| 114 | * `gsc` - Whether the platform has an onboard Google security chip. |
| 115 | * `houdini` - Availability of 32-bit Houdini library for ARC. |
| 116 | * `houdini64` - Availability of 64-bit Houdini library for ARC. |
| 117 | * `hostap_hwsim` - Whether system has the hostap project's test dependencies |
Brian Norris | 012fc90 | 2019-11-07 21:55:13 | [diff] [blame] | 118 | (scripts, daemons) installed and configured appropriately. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 119 | * `hps` - Whether the system has the hps daemon and tools, go/cros-hps. |
| 120 | * `igt` - Boards that can run igt-gpu-tools tests |
| 121 | * `iioservice` - Whether the device has CrOS IIO Service running. |
| 122 | * `inference_accuracy_eval` - Whether the device has inference accuracy evaluation tools installed. |
Kerker Yang | 28d7340 | 2023-06-21 06:58:50 | [diff] [blame] | 123 | * `intel_psr` - Whether Intel PSR (platform service record) is supported or not. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 124 | * `ikev2` - The ability to run an IKEv2 VPN. |
| 125 | * `io_uring` - Whether the platform (kernel) has the io_uring syscalls enabled. |
| 126 | * `iwlwifi_rescan` - Ability to remove/rescan WiFi PCI device when the |
Yen-lin Lai | 0e3065e | 2019-10-14 07:52:32 | [diff] [blame] | 127 | hardware becomes non-responsive. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 128 | * `lacros` - Whether the system supports running [lacros]. |
| 129 | * `lacros_stable` - Whether the system supports running [lacros] and is stable enough for CQ. [TODO: Remove this.](crbug.com/1412276) |
| 130 | * `lacros_unstable` - Whether the system supports running [lacros] and is not stable enough for CQ. [TODO: Remove this.](crbug.com/1412276) |
| 131 | * `landlock_enabled` - Whether the system supports the Landlock Linux Security Module. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 132 | * `mbo` - WiFi MBO support. |
| 133 | * `memfd_create` - memfd_create function implemented in the kernel. |
| 134 | * `memd` - [Memory stats collection daemon]. |
| 135 | * `microcode` - Platforms that have CPU microcode. |
| 136 | * `ml_service` - ML Service daemon. |
| 137 | * `ml_benchmark_drivers` - [ML benchmarking suite](http://go/roadrollerda) |
| 138 | * `mosys` - Ability to run mosys command. |
| 139 | * `nacl` - Availability of the Native Client sandboxing technology. |
| 140 | * `ndk_translation` - Availability of 32-bit NDK translation library for ARC. |
| 141 | * `ndk_translation64` - Availability of 64-bit NDK translation library for |
Youkichi Hosoi | 9c419b3 | 2020-05-28 01:45:31 | [diff] [blame] | 142 | ARC. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 143 | * `nnapi` - Has the nnapi (libneuralnetworks.so) installed. Run minimal VTS tests. |
| 144 | * `nnapi_vendor_driver` - Run the full VTS / CTS test suite. Ignores VM's. |
| 145 | * `no_android` - The inability to run Android apps. This is the opposite of |
Daniel Erat | 63de30d | 2018-11-20 00:48:34 | [diff] [blame] | 146 | the `android` feature; DUTs will have exactly one of these two features. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 147 | * `no_arm` - The absence of [arm] 32 bit userspace. |
| 148 | * `no_asan` - Build was not built with Address Sanitizer. Similar to `aslr`. |
| 149 | * `no_ath10k_4_4` - Skip boards using the ath10k/ar10k driver on kernel 4.4, as they are missing certain features (b/138406224). |
| 150 | * `no_borealis_host` - Boards which is not designed to host borealis. |
| 151 | * `no_chrome_dcheck` - Chrome/Chromium was not built with dcheck enabld`. |
| 152 | * `no_eth_loss_on_reboot` - Board does not lose ethernet on reboot. Context: b/178529170 |
| 153 | * `no_iioservice` - Build was not built with CrOS IIO Service. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 154 | * `no_msan` - Build was not built with Memory Sanitizer. |
| 155 | * `no_ondevice_handwriting` - Doesn't have on-device handwriting recognition support. Either ml_service is not enabled, or if ml_service doesn't support `ondevice_handwriting`. |
| 156 | * `no_arc_userdebug` - Skip boards that ship ARC userdebug build. |
| 157 | * `no_arc_x86` - Skip on x86 architecture. |
| 158 | * `no_qemu` - For tests not for ChromeOS QEMU images. |
| 159 | * `no_symlink_mount` - Symlink mounting is disabled via the |
Daniel Erat | 9747888 | 2018-11-14 05:54:39 | [diff] [blame] | 160 | `CONFIG_SECURITY_CHROMIUMOS_NO_SYMLINK_MOUNT` kernel option. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 161 | * `no_tablet_form_factor` - The device's primary form factor is not tablet |
| 162 | * `no_tpm2_simulator` - Built was not built with the simulator of Trusted Platform Module supporting TPMv2. |
| 163 | * `no_tpm_dynamic` - Build was not built with dynamic TPM. |
| 164 | * `no_ubsan` - Build was not built with Undefined Behavior Sanitizer. |
| 165 | * `no_vulkan` - Build was not built with [Vulkan] enabled. |
| 166 | * `no_arcvm_virtio_blk_data` - Build was not built with ARCVM virtio-blk /data enabled. |
| 167 | * `no_gsc` - Build was not built with onboard Google security chip support. |
| 168 | * `nvme` - Ability to run NVMe software utilities. |
| 169 | * `oci` - The ability to use the `run_oci` program to execute code within |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 170 | [OCI] containers. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 171 | * `ocr` - [Optical Character Recognition Service] daemon. |
| 172 | * `ondevice_document_scanner` - On-device document scanner support in `ml_service` which installed document scanner library in rootfs. |
Wei Lee | 6a2c38b | 2022-07-28 03:46:02 | [diff] [blame] | 173 | This implies `ml_service`. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 174 | * `ondevice_document_scanner_rootfs_or_dlc` - On-device document scanner support in `ml_service`. |
Wei Lee | f9c36ef | 2021-08-05 03:43:38 | [diff] [blame] | 175 | This implies `ml_service`. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 176 | * `ondevice_grammar` - On-device grammar check support in `ml_service`. |
| 177 | * `ondevice_handwriting` - On-device handwriting recognition support in `ml_service`. |
| 178 | * `ondevice_speech` - On-device speech recognition support in `ml_service`. |
| 179 | * `ondevice_text_suggestions` - On-device txt suggestions support in `ml_service`. |
| 180 | * `pinweaver` - Pinweaver support, either by GSC or Intel CSME. |
ChromeOS Developer | 442a42f | 2021-03-11 06:24:18 | [diff] [blame] | 181 | This implies `ml_service`. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 182 | * `play_store` - Boards where Google Play Store is supported. |
| 183 | * `plugin_vm` - The ability to run Plugin VMs. |
| 184 | * `proprietary_codecs` - Indicates if Chrome supports proprietary video |
Madhulika | 2955f68 | 2020-05-18 18:42:45 | [diff] [blame] | 185 | codecs (e.g. H.264). This is supported by Chrome official builds and Chromium |
| 186 | builds with the |propietary_codecs| build flag set. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 187 | * `protected_content` - Platform has HW backed OEMCrypto implementation for Widevine |
Jeffrey Kardatzke | 3327736 | 2021-02-23 22:48:48 | [diff] [blame] | 188 | L1 HW DRM. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 189 | * `qemu` - For tests exclusive to ChromeOS QEMU images. |
| 190 | * `racc` - Whether [Runtime AVL Compliance Check] is available. |
| 191 | * `reboot` - The ability to reboot reliably during a remote test. |
| 192 | * `rrm_support` - Driver support for 802.11k RRM. |
| 193 | * `screenshot` - The [screenshot command] can save screenshots. |
| 194 | * `selinux` - An SELinux-enabled board. All Android boards are |
Qijiang Fan | 7ced1b9 | 2018-09-07 04:08:16 | [diff] [blame] | 195 | SELinux-enabled. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 196 | * `selinux_current` - All SELinux-enabled boards except experimental boards. |
Qijiang Fan | 066d266 | 2019-01-10 09:25:12 | [diff] [blame] | 197 | This implies `selinux`. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 198 | * `selinux_experimental` - An experimental SELinux board. An experimental |
Qijiang Fan | 066d266 | 2019-01-10 09:25:12 | [diff] [blame] | 199 | board has `SELINUX=permissive` in `/etc/selinux/config`, thus no policy |
| 200 | will be enforced. This implies `selinux`. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 201 | * `shill-wifi` - WiFi technology is enabled for Shill. |
| 202 | * `siernia` - Sirenia is present on a non-ManaTEE image. |
| 203 | * `smartdim` - Use smart dim to defer the imminent screen dimming. |
| 204 | * `smartctl` - Ability to run smartctl software utility. |
| 205 | * `stack_sampled_metrics` - Ability to run the stack profiler and gather |
Ian Barkley-Yeung | f3cf106 | 2022-10-21 21:08:26 | [diff] [blame] | 206 | stack-sampled metrics. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 207 | * `storage_wearout_detect` - The ability to measure storage device health. |
| 208 | * `tablet_form_factor` - The device's primary form factor is tablet |
| 209 | * `tast_vm` - The test is running in a VM [managed by chromite](https://chromium.googlesource.com/chromiumos/chromite/+/HEAD/lib/cros_test.py#396). |
| 210 | * `tflite_opencl` - Skips boards which have issues with the OpenCL TFLite |
Jake Barnes | e77af2a | 2022-06-28 05:10:10 | [diff] [blame] | 211 | delegate (b/233851820). |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 212 | * `thread_safe_libva_backend` - Boards where the LIBVA backend is threadsafe. |
| 213 | * `tpm` - A [Trusted Platform Module] chip. |
| 214 | * `tpm_clear_allowed` - The device's TPM can be cleared. |
| 215 | * `tpm1` - Indicate a Trusted Platform Module supporting TPMv1.2 is available. Note that TPMv2 is not backward compatible. |
| 216 | * `tpm2` - Indicate a Trusted Platform Module supporting TPMv2 is available. |
| 217 | * `tpm2_simulator` - Indicate the simulator of Trusted Platform Module supporting TPMv2 is available. |
| 218 | * `tpm_dynamic` - Indicate the dynamic TPM is available. |
| 219 | * `transparent_hugepage` - [Transparent Hugepage] support in the Linux kernel. |
| 220 | * `unibuild` - The ChromeOS build is a unified build. |
| 221 | * `untrusted_vm` - The ability to run an untrusted VM. |
| 222 | * `usbguard` - The ability to allow or block USB devices based on policy. |
| 223 | * `usb_hid_wake` - The platform will register HID wake events to a usb device. |
| 224 | * `use_fscrypt_v1` - The board is set to use v1 fscrypt policy for user vault. |
| 225 | * `use_fscrypt_v2` - The board is set to use v2 fscrypt policy for user vault. |
| 226 | * `uvc_compliant` - The board has a UVC driver that is V4L2 compliant. |
| 227 | * `v4l2_codec` - Whether or not v4l2 video acceleration API is supported by this DUT. |
| 228 | * `vaapi` - Whether or not VA-API is supported by this DUT. |
| 229 | * `video_cards_ihd` - Boards that use the Intel Media Driver (also known as iHD) for VA-API. |
| 230 | * `video_decoder_direct` - The platform uses the VideoDecoder (VD) by default. |
| 231 | * `video_decoder_legacy` - The platform used the VideoDecodeAccelerator (VDA) by default. |
| 232 | * `video_decoder_legacy_supported` - Is the VDA is supported on this platform. |
| 233 | * `video_overlays` - The kernel [DRM/KMS] version atomic commits and the underlying hardware display controller support the NV12 DRM Plane format needed to promote videos to [hardware overlays]. |
| 234 | * `virtual_susupend_time_injection` - The platform supports KVM virtual suspend time injection. |
| 235 | * `virtual_usb_printer` - Whether or not the device can run tests that |
Kalvin Lee | d10f32d | 2020-06-30 20:45:22 | [diff] [blame] | 236 | use [virtual USB printing][virtual-usb-printer-readme]. Note that |
| 237 | while the necessary kernel modules are available on kernel v4.4, |
| 238 | this feature excludes that version for known flakiness. See |
Seewai Fu | 862f27a | 2021-04-13 22:07:37 | [diff] [blame] | 239 | [this bug](https://b.corp.google.com/issues/172224081) for context. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 240 | * `vm_host` - The ability to [run virtual machines]. |
| 241 | * `vpd` - The DUT has a VPD chip. |
| 242 | * `vulkan` - Whether [Vulkan] is enabled. |
| 243 | * `watchdog` - watchdog daemon |
| 244 | * `wifi` - If this DUT has WiFi device. |
| 245 | * `wpa3_sae` - The ability to use WPA3-SAE authentication for WiFi. |
| 246 | * `wilco` - If this DUT is a [wilco] device. These features include |
Trent Begin | 4d27476 | 2019-05-29 22:01:57 | [diff] [blame] | 247 | the DTC (Diagnostic and Telemetry Controller) VM, a special EC interface, |
| 248 | and a dock firmware updater. |
Jared Bennett | c73c68e | 2023-04-11 23:31:31 | [diff] [blame] | 249 | * `wireguard` - The ability to run a WireGuard VPN. |
| 250 | * `no_kernel_upstream` - Skip boards with continuously-rebased kernel. |
Daniel Erat | 5b270ed | 2018-05-02 05:37:54 | [diff] [blame] | 251 | |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 252 | [amd64]: https://en.wikipedia.org/wiki/X86-64 |
Hirokazu Honda | a5a0660 | 2020-01-30 04:44:17 | [diff] [blame] | 253 | [arm]: https://en.wikipedia.org/wiki/ARM_architecture |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 254 | [run Android apps]: https://developer.android.com/topic/arc/ |
| 255 | [Camera HAL3]: https://source.android.com/devices/camera/camera3 |
Ren-Pei Zeng | baf46f2 | 2019-11-01 12:13:53 | [diff] [blame] | 256 | [Camera HAL1]: https://source.android.com/devices/camera#architecture-legacy |
| 257 | [Linux Video Capture]: https://chromium.googlesource.com/chromium/src/+/HEAD/media/capture/video/linux/ |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 258 | [AddressSanitizer]: https://github.com/google/sanitizers/wiki/AddressSanitizer |
Greg Edelston | d71f987 | 2021-01-05 17:38:50 | [diff] [blame] | 259 | [Autotest capability]: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/main/chromeos-base/autotest-capability-default/ |
| 260 | [chromeos-chrome]: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/main/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild |
David Staessens | 8302f56 | 2019-10-04 03:53:42 | [diff] [blame] | 261 | [media::VideoDecoder]: https://cs.chromium.org/chromium/src/media/base/video_decoder.h |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 262 | [Diagnostic utilities]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/diagnostics/README.md |
| 263 | [Downloadable Content]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/dlcservice |
Miguel Casas | 97c357f | 2020-02-28 21:31:37 | [diff] [blame] | 264 | [DRM/KMS]: https://www.kernel.org/doc/Documentation/gpu/drm-kms.rst |
| 265 | [hardware overlays]: https://en.wikipedia.org/wiki/Hardware_overlay |
Puthikorn Voravootivat | 6035d9a | 2020-05-21 22:50:59 | [diff] [blame] | 266 | [Intel Dynamic Platform and Thermal Framework]: https://01.org/intel%C2%AE-dynamic-platform-and-thermal-framework-dptf-chromium-os |
Laurent Chavey | 1c1362f | 2021-02-17 02:56:43 | [diff] [blame] | 267 | [lacros]: https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/lacros.md |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 268 | [sandboxed]: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux_sandboxing.md |
Greg Edelston | d71f987 | 2021-01-05 17:38:50 | [diff] [blame] | 269 | [Memory stats collection daemon]: https://chromium.googlesource.com/chromiumos/platform2/+/main/metrics/memd/ |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 270 | [OCI]: https://www.opencontainers.org/ |
Efi Mavroudi | 186f9b3 | 2020-08-13 00:19:13 | [diff] [blame] | 271 | [Optical Character Recognition Service]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/ocr/README.md |
Greg Edelston | d71f987 | 2021-01-05 17:38:50 | [diff] [blame] | 272 | [Runtime AVL Compliance Check]: https://chromium.googlesource.com/chromiumos/platform2/+/refs/heads/main/runtime_probe/README.md |
| 273 | [screenshot command]: https://chromium.googlesource.com/chromiumos/platform2/+/main/screen-capture-utils/ |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 274 | [Trusted Platform Module]: https://en.wikipedia.org/wiki/Trusted_Platform_Module |
| 275 | [Transparent Hugepage]: https://www.kernel.org/doc/Documentation/vm/transhuge.txt |
Greg Edelston | d71f987 | 2021-01-05 17:38:50 | [diff] [blame] | 276 | [run virtual machines]: https://chromium.googlesource.com/chromiumos/docs/+/main/containers_and_vms.md |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 277 | [Vulkan]: https://www.khronos.org/vulkan/ |
Greg Edelston | d71f987 | 2021-01-05 17:38:50 | [diff] [blame] | 278 | [virtual-usb-printer-readme]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/virtual-usb-printer/README.md |
Trent Begin | 4d27476 | 2019-05-29 22:01:57 | [diff] [blame] | 279 | [wilco]: https://sites.google.com/corp/google.com/wilco/home |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 280 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 281 | ### New features |
Daniel Erat | 5b270ed | 2018-05-02 05:37:54 | [diff] [blame] | 282 | |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 283 | Features should be descriptive and precise. Consider a hypothetical test that |
| 284 | exercises authentication using a biometrics daemon that isn't present in system |
| 285 | images built to run on virtual machines. Instead of adding a `real_hardware` or |
| 286 | `non_vm` feature that is overly broad and will likely be interpreted as carrying |
| 287 | additional meaning beyond the original intent, add a `biometrics_daemon` feature |
| 288 | that precisely communicates the test's actual requirement. |
| 289 | |
Hidehiko Abe | 25cadea | 2020-09-03 05:31:32 | [diff] [blame] | 290 | Features are composed from USE flags and board names, which are statically |
Shuhei Takahashi | 974f791 | 2021-11-02 01:48:21 | [diff] [blame] | 291 | defined when the system image is built. [software_defs.go] lists boolean |
Hidehiko Abe | 25cadea | 2020-09-03 05:31:32 | [diff] [blame] | 292 | expressions that are used to generate features; for example, an imaginary |
| 293 | feature named `hd_audio` with the expression |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 294 | |
| 295 | ```go |
| 296 | cras && (audio_chipset_a || audio_chipset_b) && !broken_headphone_jack |
| 297 | ``` |
| 298 | |
| 299 | will be reported as available on systems where the `cras` USE flag is set, |
| 300 | either `audio_chipset_a` or `audio_chipset_b` is set, and |
Shuhei Takahashi | df4179c | 2019-11-08 07:04:25 | [diff] [blame] | 301 | `broken_headphone_jack` is explicitly *not* set. |
| 302 | |
Hidehiko Abe | 25cadea | 2020-09-03 05:31:32 | [diff] [blame] | 303 | A feature can depend on board names, too. Another imaginary feature |
| 304 | named `vm_graphics` with the expression |
| 305 | |
| 306 | ```go |
| 307 | "board:betty-pi-arc" |
| 308 | ``` |
| 309 | |
| 310 | will be reported as available on `betty-pi-arc` board only. |
| 311 | |
Shuhei Takahashi | df4179c | 2019-11-08 07:04:25 | [diff] [blame] | 312 | Before a new `USE` flag can be used in an expression, it must be added to `IUSE` |
Brian Norris | 9aba3bb | 2020-01-22 01:18:18 | [diff] [blame] | 313 | in the [tast-use-flags] package. Local changes to the `tast-use-flags` ebuild |
Shuhei Takahashi | df4179c | 2019-11-08 07:04:25 | [diff] [blame] | 314 | have to be pushed to the DUT manually to take effect: |
| 315 | |
| 316 | ``` |
Nicholas Hollingum | 18e622f | 2020-08-03 00:49:40 | [diff] [blame] | 317 | cros_workon-$BOARD start chromeos-base/tast-use-flags |
Shuhei Takahashi | df4179c | 2019-11-08 07:04:25 | [diff] [blame] | 318 | emerge-$BOARD chromeos-base/tast-use-flags |
| 319 | cros deploy --root=/usr/local $HOST chromeos-base/tast-use-flags |
| 320 | ``` |
| 321 | |
| 322 | When submitting changes to add new `USE` flags to the [tast-use-flags] package, |
| 323 | please use [Cq-Depend] in your commit messages to ensure that changes land in |
| 324 | the correct order. |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 325 | |
| 326 | If you're having trouble finding a way to specify your test's dependencies, |
| 327 | please ask for help on the [tast-users mailing list]. |
| 328 | |
Seewai Fu | 85c8e4d | 2023-05-31 23:46:38 | [diff] [blame] | 329 | [software_defs.go]: https://chromium.googlesource.com/chromiumos/platform/tast/+/main/src/go.chromium.org/tast/core/internal/crosbundle/software_defs.go |
Greg Edelston | d71f987 | 2021-01-05 17:38:50 | [diff] [blame] | 330 | [tast-use-flags]: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/main/chromeos-base/tast-use-flags/ |
| 331 | [Cq-Depend]: https://chromium.googlesource.com/chromiumos/docs/+/main/contributing.md#cq-depend |
Mark Hasemeyer | b5c9e67 | 2022-08-25 22:15:54 | [diff] [blame] | 332 | [tast-users mailing list]: https://groups.google.com/a/chromium.org/g/tast-users |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 333 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 334 | #### Example changes |
Daniel Erat | a341383 | 2019-01-31 23:43:32 | [diff] [blame] | 335 | |
Daniel Erat | 920fc65 | 2018-12-19 16:11:22 | [diff] [blame] | 336 | See the following changes for an example of adding a new `containers` software |
| 337 | feature based on the `containers` USE flag and making a test depend on it: |
| 338 | |
| 339 | * `chromiumos-overlay` repository: <https://crrev.com/c/1382877> |
| 340 | * `tast` repository: <https://crrev.com/c/1382621> |
| 341 | * `tast-tests` repository: <https://crrev.com/c/1382878> |
| 342 | |
Daniel Erat | e4ea299 | 2019-04-13 01:28:45 | [diff] [blame] | 343 | (Note that the `containers` feature has since been renamed to `oci`.) |
| 344 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 345 | ### autotest-capability |
Daniel Erat | a341383 | 2019-01-31 23:43:32 | [diff] [blame] | 346 | |
Daniel Erat | 673ebab | 2019-02-13 05:32:46 | [diff] [blame] | 347 | There are also `autotest-capability:`-prefixed features, which are added by the |
| 348 | [autocaps package] as specified by YAML files in |
Daniel Erat | df04ea0 | 2018-09-19 21:31:24 | [diff] [blame] | 349 | `/usr/local/etc/autotest-capability`. This exists in order to support porting |
| 350 | existing Autotest-based video tests to Tast. Do not depend on capabilities from |
| 351 | outside of video tests. |
| 352 | |
Seewai Fu | d678a7c | 2023-04-21 17:55:02 | [diff] [blame] | 353 | [autocaps package]: https://godoc.org/chromium.googlesource.com/chromiumos/platform/tast.git/src/go.chromium.org/tast/core/autocaps/ |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 354 | |
| 355 | |
| 356 | ## Hardware dependencies |
| 357 | |
| 358 | Tast provides a way to run/skip tests based on the device characteristics. |
Tatsuhisa Yamaguchi | d857bb1 | 2021-03-29 04:35:44 | [diff] [blame] | 359 | |
| 360 | Note that "device characteristics" here only consists of information that can |
| 361 | be determined solely based on the DUT, without depending on the other |
| 362 | surrounding environment, such as some config files on DUT. |
| 363 | |
Hidehiko Abe | 93f747d | 2020-03-30 06:54:02 | [diff] [blame] | 364 | The examples of the device characteristics are as follows: |
| 365 | |
| 366 | * Whether the device has a touch screen. |
| 367 | * Whether the device has fingerprint. |
| 368 | * Whether the device has an internal display. |
| 369 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 370 | For example, in order to run tests on DUT where touchscreen is available, |
| 371 | the dependency can be declared in the `HardwareDeps` field of `testing.Test`. |
| 372 | |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 373 | ```go |
| 374 | func init() { |
| 375 | testing.AddTest(&testing.Test{ |
| 376 | ... |
| 377 | HardwareDeps: hwdep.D(hwdep.Touchscreen()), |
| 378 | ... |
| 379 | }) |
| 380 | } |
| 381 | ``` |
| 382 | |
| 383 | You can provide multiple `Condition`s to `hwdep.D`. In the case, |
| 384 | the test will run only on DUTs where all the conditions are satisfied. |
| 385 | |
| 386 | You can find the full list of supported conditions in the [hwdep package]. |
| 387 | |
Tatsuhisa Yamaguchi | 089ea76 | 2022-03-17 09:37:02 | [diff] [blame] | 388 | Note that there are special kinds of hardware dependencies, named `Model` and |
| 389 | `SkipOnModel`. |
Hidehiko Abe | 93f747d | 2020-03-30 06:54:02 | [diff] [blame] | 390 | With these dependencies, tests will be controlled based on the device type names, |
| 391 | rather than the device characteristics. |
| 392 | In general, it is recommended *not* to use these conditions. If you feel you need |
| 393 | these conditions, it is recommended to reconsider whether there is an alternative |
| 394 | (and more appropriate) condition. |
| 395 | Examples of their expected use cases are: |
| 396 | |
| 397 | * There are known issues in a driver of a specific device, which cannot be |
| 398 | fixed immediately. The test is stable on other models, and we would like |
| 399 | to promoted it to critical. |
| 400 | * There is a test running as informational. Flakiness failures are found |
| 401 | only on a few models, but the test is stable on other models. |
Tatsuhisa Yamaguchi | 089ea76 | 2022-03-17 09:37:02 | [diff] [blame] | 402 | With depending models, we can promote the test to critical on |
Hidehiko Abe | 93f747d | 2020-03-30 06:54:02 | [diff] [blame] | 403 | most of models, except ones where the test results flakiness. |
| 404 | In this case, it is expected that a dedicated engineer is assigned to |
| 405 | investigate the cause and its fix. |
| 406 | |
Seewai Fu | d948221 | 2023-04-25 01:50:57 | [diff] [blame] | 407 | [hwdep package]: https://chromium.googlesource.com/chromiumos/platform/tast/+/main/src/go.chromium.org/tast/core/testing/hwdep/ |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 408 | |
| 409 | ### Adding new hardware conditions |
| 410 | |
Jesse McGuire | 84c0970 | 2022-05-06 23:17:29 | [diff] [blame] | 411 | In order to guarantee forward compatibility in ChromeOS infra, |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 412 | each `Condition` should be based on the |
| 413 | `chromiumos.config.api.HardwareFeatures` protobuf schema. |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 414 | |
| 415 | For example, the `hwdep.Touchscreen()` can check |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 416 | whether `Screen.TouchSupport` is set to `HardwareFeatures_PRESENT`. |
Hidehiko Abe | 8a49614 | 2020-02-06 04:23:28 | [diff] [blame] | 417 | |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 418 | Note that currently a `chromiumos.config.api.HardwareFeatures` instance is |
| 419 | generated internally by Tast at runtime, so only limited fields are filled. |
Seewai Fu | 13e36d3 | 2022-11-19 03:17:34 | [diff] [blame] | 420 | In the future, ChromeOS Infra test scheduler will be responsible for checking |
| 421 | hardware dependencies before running Tast tests. |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 422 | |
| 423 | Here is an example end-to-end workflow: |
| 424 | Let’s assume that a developer wants to add a new Tast test which requires a new |
| 425 | hardware feature to be used in the test hardware constraints (e.g. “wifi chip |
| 426 | vendor name is X”). |
| 427 | |
Seewai Fu | 13e36d3 | 2022-11-19 03:17:34 | [diff] [blame] | 428 | 1. The developer makes a change for that hardware feature. |
| 429 | * The developer files a CL for a change to the schema |
| 430 | [(config/api/topology.proto)][1] to add a new field for the feature. |
| 431 | * A domain expert approves the change in the .proto file |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 432 | [(config/api/topology.proto)][1]. [(Example CL)][2] |
Jeremy Bettis | 21ac3f5 | 2023-01-26 18:15:49 | [diff] [blame] | 433 | 1. To test locally, run these commands to regenerate the go proto bindings. |
| 434 | ``` |
| 435 | ~/chromiumos/src/config/generate.sh |
| 436 | cros workon --host start cros-config-api |
| 437 | sudo emerge cros-config-api |
| 438 | ``` |
| 439 | 1. The developer waits until the CL in #1 is landed, then implements |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 440 | some functions in the Tast framework supporting the new feature(s) using the |
| 441 | new message type. |
| 442 | * The Tast team reviews and approves such a change to Tast. |
| 443 | [Here is an example CL][3] which puts some data into the protobuf in Tast. |
Jeremy Bettis | 21ac3f5 | 2023-01-26 18:15:49 | [diff] [blame] | 444 | 1. The developer writes test(s) with hwdeps in its test metadata using the |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 445 | above function in Tast. |
| 446 | |
Laurent Chavey | 1c1362f | 2021-02-17 02:56:43 | [diff] [blame] | 447 | [1]: https://source.chromium.org/chromium/infra/infra/+/HEAD:go/src/go.chromium.org/chromiumos/config/proto/chromiumos/config/api/topology.proto |
Tatsuhisa Yamaguchi | 1c905fa | 2020-09-15 06:23:41 | [diff] [blame] | 448 | [2]: https://chromium-review.googlesource.com/c/chromiumos/config/+/2249691/4/proto/chromiumos/config/api/topology.proto |
Hidehiko Abe | 25cadea | 2020-09-03 05:31:32 | [diff] [blame] | 449 | [3]: https://chromium-review.googlesource.com/c/chromiumos/platform/tast/+/2335615 |