駕駛測試

手動硬體單元測試

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

由於這類測試必須在系統初始化中執行 (為不干擾驅動程式庫的正常作業),因此必須透過核心指令列標記啟動。如要啟用特定驅動程式庫的掛鉤,請使用 driver.<name>.tests.enable。或者所有驅動程式:driver.tests.enable。如果驅動程式庫未實作 run_unit_tests(),則這些標記將不會有任何作用。

run_unit_tests() 會傳遞驅動程式庫管道,以便寫入測試輸出內容。測試輸出內容的格式應為 fuchsia.driver.test.Logger FIDL 訊息。驅動程式庫-unit-test 程式庫包含與 zxtest 整合的輔助類別,並為您處理記錄作業。

整合測試

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

單元測試

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

還有一些實用的模擬程式庫:

TODO(https://fxbug.dev/42128499):請在這裡瞭解詳情。