使用 kselftest 进行设备测试

有几种不同的 kselftest 可用于通用设备测试,它们在覆盖范围上有所重叠,并且有不同的要求。本文档旨在概述每种测试。

注意:本文档中的路径是相对于 kselftest 文件夹(tools/testing/selftests)的。

面向设备的 kselftest

  • 设备树(dt

    • 覆盖范围:设备树中描述的设备的探测状态

    • 要求:无

  • 错误日志(devices/error_logs

    • 覆盖范围:来自任何设备的错误(或更关键的)日志消息是否存在

    • 要求:无

  • 可发现总线(devices/probe

    • 覆盖范围:在参考文件中描述的 USB 或 PCI 设备是否存在及探测状态

    • 要求:在 YAML 参考文件中手动描述应测试的设备(参见devices/probe/boards/google,spherion.yaml以获取示例)

  • 存在(devices/exist

    • 覆盖范围:所有设备是否存在

    • 要求:在已知良好的内核上生成参考文件(详情请参见devices/exist/README.rst

因此,建议在所有(基于 DT 的)平台上启用错误日志和设备树测试,因为它们没有任何要求。然后,为了大大提高覆盖率,为每个平台生成参考文件并启用存在性测试。可发现总线测试可用于验证特定 USB 或 PCI 设备的探测状态,但在大多数情况下可能不值得。