Vendor Test Suite (VTS) i infrastruktura

Android Vendor Test Suite (VTS) zapewnia do szczegółowych testów:

  • Jądro
  • Sprzętowa warstwa abstrakcji (HAL)

VTS działa na na komputerze i uruchamia przypadki testowe bezpośrednio na podłączonych urządzeniach. za pomocą emulatorów. Podobnie jak w przypadku CTS, wskaźnik VTS to z automatycznym zestawem testów, korzysta z wymienionych poniżej głównych komponentów oprogramowania.

  • Federacja handlowa VTS. jarzmo testowe działa na hoście i zarządza testem Zapewnia możliwość Konfigurowanie fragmentacji na wielu testowanych urządzeniach. Możesz też użyć the Suite Ponów aby ponawiać próby tylko błędów, a nie całego zestawu testów, co znacznie skraca czas ponownego wykonywania.
  • Na urządzeniu DUT wykonywane są osobne przypadki testowe. Przypadki testowe mogą to być testy w stylu gtest, testy jądra lub testy w stylu JUnit Java.

Rodzaje testów

W poniższych sekcjach opisano różne typy testów VTS.

testy w stylu gtest

Większość testów w VTS to testy w stylu gtest, które sprawdzają wartość HAL implementacji. Test jest w języku C++ i działa na urządzeniu. Typowy test gtest VTS powtarza się w każdej instancji danego interfejsu i uruchamia wszystkie przypadki testowe i ochrony danych. Więcej informacji: VtsHalHealthStorageV1_0TargetTest .

Testy jądra systemu Linux

  • Kselftest (external/linux-kselftest), to zbiór testów zawartych w repozytorium jądra systemu Linux w środowisku tools/testing/selftests, z których 23 jest uwzględnionych w VTS przeznaczonych do działania w architekturze ARM.

  • Projekt testowy Linuksa (external/ltp) w celu sprawdzenia niezawodności, wytrzymałości i stabilności jądra systemu Linux.

Testy w stylu JUnit

W VTS dostępny jest niewielki zestaw testów opartych na hoście, na przykład w stylu JUnit KernelApiSysfsTest Testy w Javie są implementowane w taki sposób, BaseHostJUnit4Test, które jest powiązane z urządzeniem testowym i może uruchamiać powłokę do weryfikacji.

Samodzielne testy Pythona3

Niektóre testy VTS, takie jak vts_treble_sys_prop_test są napisane w języku Python3. Testy oparte na Pythonie są wdrażane jako unittest.TestCase, a każdy test umożliwia interakcję z urządzeniem za pomocą poleceń powłoki.