ベンダー テスト スイート (VTS) とインフラストラクチャ

Android 11 Vendor Test Suite (VTS) は、以下に関する広範なテストを提供します。

  • カーネル
  • ハードウェア抽象化レイヤー (HAL)

VTS はデスクトップ マシンで実行され、接続されたデバイスまたはエミュレーターでテスト ケースを直接実行します。 CTSと同様に、VTS は、次の主要なソフトウェア コンポーネントを使用する自動テスト スイートです。

  • VTS Trade Federationテスト ハーネスはホスト マシン上で実行され、テストの実行を管理します。複数のテスト対象デバイス (DUT) 間でシャーディングを構成する機能を提供します。スイートの再試行機能を使用して、テスト スイート全体ではなく、失敗した部分のみを再試行することもできます。これにより、再実行時間が大幅に短縮されます。
  • 個々のテスト ケースが DUT 上で実行されます。テスト ケースには、gtest スタイルのテスト、カーネル テスト、または Java で記述された JUnit スタイルのテストを使用できます。

テストの種類

gtest スタイルのテスト

VTS のほとんどのテストは、HAL の実装をチェックする gtest スタイルのテストです。テストは C++ で記述され、デバイス上で実行されます。典型的な VTS gtest は、特定のインターフェイスの各インスタンスを繰り返し処理し、それに対してすべてのテスト ケースを実行します。例については、 VtsHalHealthStorageV1_0TargetTestを参照してください。

Linux カーネル テスト

  • Kselftest ( external/linux-kselftest ) は Linux カーネル リポジトリ内のtools/testing/selftestsに含まれるテストのコレクションであり、そのうち 23 個が VTS に含まれており、ARM で実行されます。

  • Linux テスト プロジェクト ( external/ltp ) テストは、Linux カーネルの信頼性、堅牢性、および安定性を検証します。

JUnit スタイルのテスト

VTS のホスト駆動型テストの小さなセットは、JUnit スタイルのテスト ( KernelApiSysfsTestなど) です。 Java テストはBaseHostJUnit4Testとして実装されます。これはテスト デバイスに関連付けられており、シェル コマンドを実行して検証を実行できます。

スタンドアロンの Python3 テスト

vts_treble_sys_prop_test などの一部の VTS テストは、 vts_treble_sys_prop_testで記述されています。 Python ベースのテストはunittest.TestCaseとして実装され、各テスト ケースはシェル コマンドを介してデバイスとやり取りできます。