WIFI測試和調試
本文將介紹如何使用 ASOP 中提供的工具測試和調試 WLAN 實現。
測試
為了測試 WLAN 框架,AOSP 提供了一系列單元測試、集成測試 (ACTS) 和 CTS 測試。
單元測試
AOSP 包括針對默認 WLAN 框架的功能測試和單元測試:這兩項測試均適用於 WLAN Manager(應用端代碼)和 WLAN 服務。
WLAN Manager 測試:
- 位於
frameworks/base/wifi/tests中 -
使用以下 shell 可執行文件運行(有關更多執行選項,請參閱文件):
% ./frameworks/base/wifi/tests/runtest.sh
WLAN 服務測試:
- 位於
frameworks/opt/net/wifi/tests/wifitest中 -
使用以下 shell 可執行文件運行(有關更多執行選項,請參閱文件):
% ./frameworks/opt/net/wifi/tests/wifitests/runtest.sh
Android 通訊測試套件
Android 通訊測試套件 (ACTS) 用於執行對連接堆棧(例如 WLAN、藍牙和移動網絡服務)的自動測試。該測試工具需要 adb 和 Python,您可以在以下位置找到它:tools/test/connectivity/acts。
您可以在以下位置找到針對 WLAN 的 ACTS 測試:tools/test/connectivity/acts/tests/google/wifi,而且同一目錄下還包含以下示例測試配置:example_config.json。
CTS 測試
兼容性測試套件 (CTS) 包括針對 WLAN 框架的測試。這些測試位於以下位置:cts/tests/tests/net/src/android/net/wifi。WLAN CTS 測試要求在測試開始運行時將受測設備與接入點相關聯。
增強型日志記錄選項
Android 9 改進了 WLAN 日志記錄功能,以便更輕松地調試 WLAN 問題。在 Android 9 中,驅動程序/固件環形緩沖區可以始終處於開啟狀態。在檢測到錯誤狀態時,可能會自動觸發錯誤報告(僅限 userdebug 和 eng 版本)。如果您使用的是最新 WLAN HAL(1.2 版),則固件調試緩沖區存儲在 HAL 中而不是框架內,以節省 IPC 費用。
實現
有關參考實現,請參閱供應商 HAL 中的默認實現。
您可以通過將資源 config_wifi_enable_wifi_firmware_debugging 設置為 false 來停用固件日志記錄。
集成測試 (ACTS)
您可以在以下位置找到集成測試:/tools/test/connectivity/acts/tests/google/wifi/WifiDiagnosticsTest.py。
對於 userdebug 版本,已驗證的固件轉儲會保留在閃存中相應的 tombstone 目錄下。在創建錯誤報告時,Dumpstate 就是從此目錄中收集的。
手動測試
運行以下手動測試,以驗證 tombstone 目錄中的舊文件是否已被刪除。
- 開啟 WLAN。
- 連接到網絡。
- 生成錯誤報告。
- 檢查 bugreport zip 文件並驗證
/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt中是否包含已歸檔的固件日志。
