使用 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 裝置的探測狀態,但在大多數情況下可能不值得。