使用 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 设备的探测状态,但可能不值得在大多数情况下使用。