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

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

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

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

  • VTS Торговая Федерация тест Жгут работает на хост - машине и управляет выполнением теста. Это дает возможность Configure шардингу через несколько устройств под тестом (Дуць). Вы можете также использовать Сюиту Retry функцию , чтобы повторить попытку только неудачи , а не все наборы тестов, что значительно уменьшает повторно во время выполнения.
  • Отдельные тестовые примеры выполняются на DUT. Это могут быть тесты в стиле gtest, тесты ядра или тесты в стиле JUnit, написанные на Java.

Виды тестов

тесты в стиле gtest

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

Тесты ядра Linux

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

  • Проект Тест Linux ( внешний / LTP ) тесты проверки достоверности, надежности и стабильности ядра Linux.

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

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

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

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