xref: /linux/Documentation/dev-tools/testing-devices.rst (revision c34e9ab9a612ee8b18273398ef75c207b01f516d)
1*c9949b51SNícolas F. R. A. Prado.. SPDX-License-Identifier: GPL-2.0
2*c9949b51SNícolas F. R. A. Prado.. Copyright (c) 2024 Collabora Ltd
3*c9949b51SNícolas F. R. A. Prado
4*c9949b51SNícolas F. R. A. Prado=============================
5*c9949b51SNícolas F. R. A. PradoDevice testing with kselftest
6*c9949b51SNícolas F. R. A. Prado=============================
7*c9949b51SNícolas F. R. A. Prado
8*c9949b51SNícolas F. R. A. Prado
9*c9949b51SNícolas F. R. A. PradoThere are a few different kselftests available for testing devices generically,
10*c9949b51SNícolas F. R. A. Pradowith some overlap in coverage and different requirements. This document aims to
11*c9949b51SNícolas F. R. A. Pradogive an overview of each one.
12*c9949b51SNícolas F. R. A. Prado
13*c9949b51SNícolas F. R. A. PradoNote: Paths in this document are relative to the kselftest folder
14*c9949b51SNícolas F. R. A. Prado(``tools/testing/selftests``).
15*c9949b51SNícolas F. R. A. Prado
16*c9949b51SNícolas F. R. A. PradoDevice oriented kselftests:
17*c9949b51SNícolas F. R. A. Prado
18*c9949b51SNícolas F. R. A. Prado* Devicetree (``dt``)
19*c9949b51SNícolas F. R. A. Prado
20*c9949b51SNícolas F. R. A. Prado  * **Coverage**: Probe status for devices described in Devicetree
21*c9949b51SNícolas F. R. A. Prado  * **Requirements**: None
22*c9949b51SNícolas F. R. A. Prado
23*c9949b51SNícolas F. R. A. Prado* Error logs (``devices/error_logs``)
24*c9949b51SNícolas F. R. A. Prado
25*c9949b51SNícolas F. R. A. Prado  * **Coverage**: Error (or more critical) log messages presence coming from any
26*c9949b51SNícolas F. R. A. Prado    device
27*c9949b51SNícolas F. R. A. Prado  * **Requirements**: None
28*c9949b51SNícolas F. R. A. Prado
29*c9949b51SNícolas F. R. A. Prado* Discoverable bus (``devices/probe``)
30*c9949b51SNícolas F. R. A. Prado
31*c9949b51SNícolas F. R. A. Prado  * **Coverage**: Presence and probe status of USB or PCI devices that have been
32*c9949b51SNícolas F. R. A. Prado    described in the reference file
33*c9949b51SNícolas F. R. A. Prado  * **Requirements**: Manually describe the devices that should be tested in a
34*c9949b51SNícolas F. R. A. Prado    YAML reference file (see ``devices/probe/boards/google,spherion.yaml`` for
35*c9949b51SNícolas F. R. A. Prado    an example)
36*c9949b51SNícolas F. R. A. Prado
37*c9949b51SNícolas F. R. A. Prado* Exist (``devices/exist``)
38*c9949b51SNícolas F. R. A. Prado
39*c9949b51SNícolas F. R. A. Prado  * **Coverage**: Presence of all devices
40*c9949b51SNícolas F. R. A. Prado  * **Requirements**: Generate the reference (see ``devices/exist/README.rst``
41*c9949b51SNícolas F. R. A. Prado    for details) on a known-good kernel
42*c9949b51SNícolas F. R. A. Prado
43*c9949b51SNícolas F. R. A. PradoTherefore, the suggestion is to enable the error log and devicetree tests on all
44*c9949b51SNícolas F. R. A. Prado(DT-based) platforms, since they don't have any requirements. Then to greatly
45*c9949b51SNícolas F. R. A. Pradoimprove coverage, generate the reference for each platform and enable the exist
46*c9949b51SNícolas F. R. A. Pradotest. The discoverable bus test can be used to verify the probe status of
47*c9949b51SNícolas F. R. A. Pradospecific USB or PCI devices, but is probably not worth it for most cases.
48