Vendor Test Suite (VTS) и инфраструктура

Пакет тестов Android Vendor Test Suite (VTS) обеспечивает всестороннее тестирование по следующим параметрам:

  • Ядро
  • Уровень аппаратной абстракции (HAL)

VTS работает на настольном компьютере и выполняет тестовые сценарии непосредственно на подключенных устройствах или на эмуляторах. Подобно CTS , VTS представляет собой автоматизированный набор тестов, использующий следующие основные программные компоненты:

  • Тестовый модуль VTS Trade Federation работает на вашем хост-компьютере и управляет выполнением тестов. Он позволяет настраивать распределение тестов по нескольким тестируемым устройствам (DUT). Вы также можете использовать функцию повторной попытки выполнения набора тестов , чтобы повторить только неудачные попытки, а не весь набор тестов целиком, что значительно сокращает время повторного запуска.
  • На тестируемом устройстве выполняются отдельные тестовые случаи. Это могут быть тесты в стиле GTest, тесты ядра или тесты в стиле JUnit, написанные на Java.

Виды тестов

Различные типы тестов VTS описаны в следующих разделах.

Тесты в стиле GTest

Большинство тестов в VTS — это тесты в стиле GTest, проверяющие реализацию HAL. Тест написан на C++ и выполняется на устройстве. Типичный тест VTS GTest перебирает каждый экземпляр заданного интерфейса и запускает все тестовые случаи для него. Пример можно найти в VtsHalHealthStorageV1_0TargetTest .

Тесты ядра Linux

  • Kselftest ( external/linux-kselftest ) — это набор тестов, входящих в репозиторий ядра Linux по адресу tools/testing/selftests , 23 из которых включены в VTS для запуска на ARM.

  • Тесты проекта Linux Test Project ( external/ltp ) проверяют надежность, отказоустойчивость и стабильность ядра Linux.

Тесты в стиле JUnit

Небольшой набор управляемых хостом тестов в VTS представляют собой тесты в стиле JUnit, например, KernelApiSysfsTest . Java-тесты реализованы как BaseHostJUnit4Test , который связан с тестовым устройством и может выполнять команды оболочки для проверки.

Автономные тесты Python3

Некоторые тесты VTS, такие как vts_treble_sys_prop_test , написаны на Python3. Тесты на основе Python реализованы как unittest.TestCase , и каждый тестовый случай может взаимодействовать с устройством посредством команд оболочки.