Vendor Test Suite (VTS) und Infrastruktur

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

  • Kernel
  • Hardware-Abstraktionsschicht (HAL)

VTS läuft auf einem Desktop-Rechner 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 Hauptsoftwarekomponenten 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 dafür 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 zur Ausführung auf ARM enthalten sind.

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

Tests im JUnit-Stil

Eine kleine Reihe hostgesteuerter Tests in VTS sind Tests im JUnit-Stil, zum Beispiel KernelApiSysfsTest . Die Java-Tests werden als BaseHostJUnit4Test implementiert, das einem Testgerät zugeordnet ist und Shell-Befehle ausführen kann, um eine Validierung durchzuführen.

Eigenständige Python3-Tests

Einige VTS-Tests, wie z. B. 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.