Anbieter Test Suite (VTS) und Infrastruktur

Die Android 11 Vendor Test Suite (VTS) bietet umfangreiche Tests zu folgenden Punkten:

  • 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 bei CTS , VTS ist eine automatisierte Test - Suite, die die folgenden wichtigen Software - Komponenten verwendet.

  • Die VTS Trade Federation Testumgebung läuft auf Ihrem Host - Rechner und verwaltet die Testausführung. Es bietet die Möglichkeit zu konfigurieren Sharding über mehrere Prüflingen (DUTs). Sie können auch die Verwendung Suite Retry nur die Fehler , anstatt die gesamten Testsuiten, die erheblich reduzieren die Wiederlaufzeit - Funktion erneut zu versuchen.
  • Auf dem DUT werden einzelne Testfälle ausgeführt. Die Testfälle können Tests im gtest-Stil, Kernel-Tests oder in Java geschriebene JUnit-Tests sein.

Arten von Tests

gtest-artige Tests

Die meisten Tests in VTS sind Tests im gtest-Stil, die die HAL-Implementierung überprüfen. Der Test ist in C++ geschrieben und wird auf dem Gerät ausgeführt. Ein typischer VTS-Gtest durchläuft jede Instanz einer bestimmten Schnittstelle und führt alle Testfälle dafür aus. Siehe VtsHalHealthStorageV1_0TargetTest für ein Beispiel.

Linux-Kernel-Tests

  • Kselftest ( extern / Linux-kselftest ) ist eine Sammlung von Tests im Repository Linux - Kernel enthalten bei tools/testing/selftests , von denen 23 in VTS enthalten sind , auf ARM laufen.

  • Linux Test Project ( extern / ltp ) Tests bestätigen die Zuverlässigkeit, Robustheit und Stabilität des Linux - Kernels.

Tests im JUnit-Stil

Eine kleine Gruppe von Host-driven Tests in VTS sind JUnit-Stil - Tests zum Beispiel KernelApiSysfsTest . Die Java - Tests werden als umgesetzt BaseHostJUnit4Test , das mit einem Testgerät assoziiertes ist und Shell - Befehle der Validierung durchgeführt laufen kann.

Eigenständige Python3-Tests

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