Zestaw testów dostawcy (VTS) i infrastruktura

Pakiet Android Vendor Test Suite (VTS) umożliwia przeprowadzenie kompleksowych testów:

  • jądra,
  • warstwy abstrakcji sprzętowej (HAL).

VTS działa na komputerze i wykonuje elementy testowania bezpośrednio na podłączonych urządzeniach lub emulatorach. Podobnie jak CTS, VTS to zautomatyzowany zestaw testów, który korzysta z tych głównych komponentów oprogramowania:

Typy testów

Różne typy testów VTS są opisane w kolejnych sekcjach.

Testy w stylu GTest

Większość testów w VTS to testy w stylu GTest, które sprawdzają implementację HAL. Test jest napisany w języku C++ i działa na urządzeniu. Typowy test VTS GTest iteruje przez każdą instancję danego interfejsu i uruchamia wszystkie elementy testowania. Przykład znajdziesz w sekcji VtsHalHealthStorageV1_0TargetTest.

Testy jądra Linuksa

  • Kselftest (external/linux-kselftest) to zbiór testów zawartych w repozytorium jądra Linuksa w tools/testing/selftests. 23 z nich są zawarte w VTS i działają na ARM.

  • Testy Linux Test Project (external/ltp) sprawdzają niezawodność, odporność i stabilność jądra Linuksa.

Testy w stylu JUnit

Niewielki zestaw testów sterowanych przez hosta w VTS to testy w stylu JUnit, np. KernelApiSysfsTest. Testy w języku Java są implementowane jako BaseHostJUnit4Test, który jest powiązany z urządzeniem testowym i może uruchamiać polecenia powłoki w celu przeprowadzenia weryfikacji.

Samodzielne testy w Pythonie 3

Niektóre testy VTS, np. vts_treble_sys_prop_test są napisane w Pythonie 3. Testy oparte na Pythonie są implementowane jako unittest.TestCase, a każdy element testowania może wchodzić w interakcję z urządzeniem za pomocą poleceń powłoki.