駕駛測試

手動硬體單元測試

驅動程式可以選擇實作 run_unit_tests() 驅動程式庫作業,為驅動程式庫提供鉤子,讓驅動程式在系統初始化時執行單元測試,並存取父項裝置。這表示驅動程式庫可以測試其繫結和解繫結鉤子,以及與實際硬體的任何互動。如果測試通過 (驅動程式庫從掛鉤傳回 true),則作業會照常繼續,並執行 bind()。如果測試失敗,裝置管理員會假設驅動程式庫無效,並不會嘗試繫結驅動程式。

由於這些測試必須在系統初始化時執行 (以免干擾驅動程式庫的一般作業),因此會使用核心指令行標記啟用這些測試。如要為特定驅動程式庫啟用掛鉤,請使用 driver.<name>.tests.enable。或針對所有驅動程式:driver.tests.enable。如果驅動程式庫未實作 run_unit_tests(),這些旗標就不會生效。

run_unit_tests() 會將管道傳遞給驅動程式庫,以便寫入測試輸出內容。測試輸出內容應為 fuchsia.driver.test.Logger FIDL 訊息的格式。驅動程式庫單元測試程式庫包含整合 ZXTest 的輔助類別,可為您處理記錄。

整合測試

驅動程式作者應使用 driver_test_realm 進行整合測試。

單元測試

驅動程式作者應使用 mock-ddk 程式庫進行單元測試。

有許多實用的模擬程式庫:

TODO(https://fxbug.dev/42128499):請在此處填入更多詳細資料。