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

Android 供应商测试套件 (VTS) 针对以下项目提供了全面的测试:

  • Kernel
  • 硬件抽象层 (HAL)

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

  • VTS Trade Federation 自动化测试框架会在您的主机上运行,并管理测试执行情况。此框架可实现对多个受测设备 (DUT) 进行分片配置。您还可以利用套件重试功能仅重试失败的测试而不是完整的测试套件,从而大幅减少重新运行所需的时间。
  • 单个测试用例会在 DUT 上执行。测试用例可以是采用 Java 编写的 GTest 式测试、内核测试或 JUnit 式测试。

测试类型

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

GTest 式测试

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

Linux 内核测试

  • Kselftest (external/linux-kselftest) 是一组测试,包含在位于 tools/testing/selftests 的 Linux 内核代码库中,其中 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 命令与设备进行交互。