Vendor Test Suite (VTS) und Infrastruktur

Die Android Vendor Test Suite (VTS) bietet umfangreiche Tests zu Folgendem:

  • Kernel
  • Hardware-Abstraktionsschicht (HAL)

VTS läuft auf einem Desktop-Computer und führt Testfälle direkt auf angeschlossenen Geräten oder auf den Emulatoren aus. Ähnlich wie CTS ist VTS eine automatisierte Testsuite, die die folgenden wichtigen Softwarekomponenten verwendet.

Arten von Tests

Tests im gtest-Stil

Die meisten Tests in VTS sind Tests im gtest-Stil, die die HAL-Implementierung überprüfen. Der Test ist in C++ geschrieben und läuft auf dem Gerät. Ein typischer VTS gtest durchläuft jede Instanz einer bestimmten Schnittstelle und führt alle Testfälle dagegen aus. Ein Beispiel finden Sie unter VtsHalHealthStorageV1_0TargetTest .

Linux-Kernel-Tests

  • Kselftest ( external/linux-kselftest ) ist eine Sammlung von Tests, die im Linux-Kernel-Repository unter tools/testing/selftests enthalten sind, von denen 23 in VTS enthalten sind, um auf ARM ausgeführt zu werden.

  • Die Tests des Linux-Testprojekts ( external/ltp ) validieren die Zuverlässigkeit, Robustheit und Stabilität des Linux-Kernels.

Tests im JUnit-Stil

Eine kleine Gruppe hostgesteuerter Tests in VTS sind Tests im JUnit-Stil, z. B. KernelApiSysfsTest . Die Java-Tests werden als BaseHostJUnit4Test implementiert, das einem Testgerät zugeordnet ist und Shell-Befehle zur Validierung ausführen kann.

Eigenständige Python3-Tests

Einige VTS-Tests wie vts_treble_sys_prop_test sind in Python3 geschrieben. Die Python-basierten Tests werden als unittest.TestCase implementiert und jeder Testfall kann über Shell-Befehle mit dem Gerät interagieren.