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
中是否包含已归档的固件日志。