平台的原生测试通常会访问较低级别的 HAL,或针对各种系统服务执行原始 IPC。因此,测试方法通常与接受测试的服务密切相关。
请使用 gtest 框架编译原生测试。这是与持续测试基础架构集成的先决条件。
示例
以下是平台源代码中原生测试的一些示例:
步骤总结
- 参阅位于以下位置的示例原生测试模块设置:frameworks/base/libs/hwui/tests/unit/
- 测试模块配置应使用
BUILD_NATIVE_TEST
编译规则,以便自动包含 gtest 依赖项 - 编写测试配置。请参阅简单配置选项和复杂配置选项。
使用
mmm
或mma
(取决于是增量构建还是完整构建)构建测试模块,例如:make hwui_unit_tests -j
使用 Atest 在本地运行测试:
atest hwui_unit_tests
您还可以向原生测试添加参数。有一些标记特别有用,例如
native-test-flag
,用于指定要传递给原生测试的 shell 命令的附加标志值;还有native-test-timeout
,允许您以微秒为单位指定测试超时值。atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \ --module-arg test-name:native-test-timeout:60000
使用 Trade Federation 自动化测试框架运行测试:
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_tests
手动安装并运行:
将生成的测试二进制文件推送到设备:
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_tests
通过在设备上调用测试二进制文件执行测试:
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
这样将启动原生测试。您还可以将
--help
参数添加到您的测试二进制文件中,以详细了解执行自定义测试的不同方式。最后,请参阅 gtest 高级指南,以了解更多参数及其用法。