原生测试

平台的原生测试通常会访问较低级别的 HAL,或针对各种系统服务执行原始 IPC。因此,测试方法通常与接受测试的服务密切相关。

请使用 gtest 框架编译原生测试。这是与持续测试基础架构集成的先决条件。

示例

以下是平台源代码中原生测试的一些示例:

步骤总结

  1. 参阅示例原生测试模块设置,位于:frameworks/base/libs/hwui/tests/unit/
  2. 测试模块配置应使用 BUILD_NATIVE_TEST 编译规则,以便自动包含 gtest 依赖项
  3. 编写测试配置。请参阅简单配置选项和复杂配置选项。
  4. 使用 mmmmma(取决于它是增量编译还是完整编译)编译测试模块,例如:

    make hwui_unit_tests -j
    
  5. 使用 Atest 在本地运行测试:

    atest hwui_unit_tests
    
  6. 使用 Trade Federation 自动化测试框架运行测试:

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  7. 手动安装并运行:

    1. 将生成的测试二进制文件推送到设备:

      adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
        /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. 通过在设备上调用测试二进制文件执行测试:

      adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

    这样将启动原生测试。您还可以将 --help 参数添加到测试二进制文件,以详细了解自定义测试执行的不同方式。最后,请参阅 gtest 高级指南,以了解更多参数及其用法。