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