|  | .. SPDX-License-Identifier: GPL-2.0 | 
|  | .. Copyright (c) 2024 Collabora Ltd | 
|  |  | 
|  | ============================= | 
|  | Device testing with kselftest | 
|  | ============================= | 
|  |  | 
|  |  | 
|  | There are a few different kselftests available for testing devices generically, | 
|  | with some overlap in coverage and different requirements. This document aims to | 
|  | give an overview of each one. | 
|  |  | 
|  | Note: Paths in this document are relative to the kselftest folder | 
|  | (``tools/testing/selftests``). | 
|  |  | 
|  | Device oriented kselftests: | 
|  |  | 
|  | * Devicetree (``dt``) | 
|  |  | 
|  | * **Coverage**: Probe status for devices described in Devicetree | 
|  | * **Requirements**: None | 
|  |  | 
|  | * Error logs (``devices/error_logs``) | 
|  |  | 
|  | * **Coverage**: Error (or more critical) log messages presence coming from any | 
|  | device | 
|  | * **Requirements**: None | 
|  |  | 
|  | * Discoverable bus (``devices/probe``) | 
|  |  | 
|  | * **Coverage**: Presence and probe status of USB or PCI devices that have been | 
|  | described in the reference file | 
|  | * **Requirements**: Manually describe the devices that should be tested in a | 
|  | YAML reference file (see ``devices/probe/boards/google,spherion.yaml`` for | 
|  | an example) | 
|  |  | 
|  | * Exist (``devices/exist``) | 
|  |  | 
|  | * **Coverage**: Presence of all devices | 
|  | * **Requirements**: Generate the reference (see ``devices/exist/README.rst`` | 
|  | for details) on a known-good kernel | 
|  |  | 
|  | Therefore, the suggestion is to enable the error log and devicetree tests on all | 
|  | (DT-based) platforms, since they don't have any requirements. Then to greatly | 
|  | improve coverage, generate the reference for each platform and enable the exist | 
|  | test. The discoverable bus test can be used to verify the probe status of | 
|  | specific USB or PCI devices, but is probably not worth it for most cases. |