供应商测试套件 (VTS) 和基础设施

Android 供应商测试套件 (VTS) 对以下内容提供了广泛的测试:

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

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

  • VTS Trade Federation测试工具在您的主机上运行并管理测试执行。它提供了跨多个被测设备 (DUT)配置分片的能力。您还可以使用套件重试功能仅重试失败的部分而不是整个测试套件,这大大减少了重新运行的时间。
  • 单个测试用例在 DUT 上执行。测试用例可以是 gtest 风格的测试、内核测试或用 Java 编写的 JUnit 风格的测试。

测试类型

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 命令与设备交互。