供应商测试套件 (VTS) 和基础架构

Android 供应商测试套件 (VTS) 在以下方面提供广泛的测试

  • 内核
  • 硬件抽象层 (HAL)

VTS 在桌面机器上运行,并在连接的设备或模拟器上直接执行测试用例。与 CTS 类似,VTS 是一个自动化测试套件,它使用以下主要软件组件

  • VTS Trade Federation 测试框架在您的主机上运行,并管理测试执行。它能够跨多个被测设备 (DUT) 配置分片。您还可以使用 Suite Retry 功能来仅重试失败的测试,而不是重试整个测试套件,这大大减少了重新运行时间。
  • 各个测试用例在 DUT 上执行。测试用例可以是 GTest 样式的测试、内核测试或用 Java 编写的 JUnit 样式测试。

测试类型

以下部分介绍了各种类型的 VTS 测试。

GTest 样式测试

VTS 中的大多数测试都是 GTest 样式测试,用于检查 HAL 实现。该测试用 C++ 编写,并在设备上运行。典型的 VTS GTest 会迭代给定接口的每个实例,并针对其运行所有测试用例。有关示例,请参阅 VtsHalHealthStorageV1_0TargetTest

Linux 内核测试

  • Kselftest (external/linux-kselftest) 是 Linux 内核代码库 tools/testing/selftests 中包含的测试集合,其中 23 个包含在 VTS 中以在 ARM 上运行。

  • Linux 测试项目 (external/ltp) 测试用于验证 Linux 内核的可靠性、稳健性和稳定性。

JUnit 样式测试

VTS 中一小部分主机驱动的测试是 JUnit 样式测试,例如,KernelApiSysfsTest。Java 测试实现为 BaseHostJUnit4Test,它与测试设备关联,并且可以运行 shell 命令来执行验证。

独立 Python3 测试

一些 VTS 测试(例如 vts_treble_sys_prop_test)是用 Python3 编写的。基于 Python 的测试实现为 unittest.TestCase,并且每个测试用例都可以通过 shell 命令与设备交互。