Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

テストのセットアップ

テストスイート

テストが VTS の一部である場合は、Android.bp で次の設定を行う必要があります。

test_suites: ["vts"],

さらに、テストスイート general-tests にテストを追加すると、テストが presubmit チェックで使用されるテスト マッピング スイートの一部として構成されます。

テスト構成

ほとんどの場合、テスト構成(VTS テストを実行するために Trade Federation が使用する XML ファイル)がビルド中に自動生成されます。ただし、テスト構成はカスタマイズできます。

カスタマイズされたテスト構成ファイルを作成する

新しいテスト XML ファイルを一から作成するのは、テストハーネスの動作や各テストランナーの相違について理解する必要があることから、手順が複雑になる可能性があります。自動生成されるテスト構成ファイルは、このプロセスを容易にすることを目的としたものです。

テスト XML ファイルをカスタマイズする必要がある場合は、自動生成されるファイルから一連の手順を開始できます。

自動生成されたテスト構成ファイルを確認するには、まず、以下に示すように make コマンドを実行して構成をビルドします。

$ m VtsHalUsbV1_1TargetTest

以下のように、ビルド ディレクトリでモジュール名に基づいて構成ファイルを検索できます。

$ find out/ -name VtsHalUsbV1_1TargetTest.config

ファイルのコピーは複数作成でき、作成したファイルのうち任意のファイルを使用できます。.config ファイルを Android.bp ファイルがあるディレクトリにコピーします。

Android.bp ファイルに格納されているテスト モジュールが 1 つのみである場合は、XML ファイルの名前を AndroidTest.xml に変更します。ビルドシステムは、自動的にこのファイルをテスト モジュールの構成ファイルとして使用します。このように処理しない場合は、以下の例に示すように、モジュールに test_config 属性を追加します。

test_config: "VtsHalUsbV1_1TargetTest.xml",

これで、カスタマイズを実装するために処理するテスト構成ファイルが用意できました。

テストが adb root で実行されるように設定する

ほとんどの VTS テストを実行するには、root 権限が必要です。テスト構成ファイルが自動生成されている場合は、次の属性を Android.bp に追加できます。

require_root: true,

テスト構成ファイルがカスタマイズされている場合は、テスト XML ファイルに次のコマンドを追加します。

<target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>

テスト中にフレームワークを停止する

多くの VTS テストでは Android フレームワークの実行を必要としません。また、フレームワークの停止状態でテストを実行することによって、デバイスの不安定な状態に影響を受けることなく、テストを安定的に実行できます。テスト構成ファイルが自動生成されている場合は、次の属性を Android.bp に追加できます。

disable_framework: true,

テスト構成ファイルがカスタマイズされている場合は、テスト XML ファイルに次のコマンドを追加します。

<target_preparer class="com.android.tradefed.targetprep.StopServicesSetup"/>

その他のテスト引数を追加する

一部の gtest テストは実行に時間を要する場合があります。そのような場合には、XML ファイルにテストランナー オプションを追加できます。

たとえば、次のエントリの native-test-timeout 設定では、デフォルトの 1 分ではなく 3 分間のタイムアウトでテストを実行できます。

   <test class="com.android.tradefed.testtype.GTest" >
       <option name="native-test-device-path" value="/data/local/tmp" />
       <option name="module-name" value="VtsHalNfcV1_0TargetTest" />
       <option name="native-test-timeout" value="180000"/>
   </test>

最小 API レベルを必須にする

一部の VTS テストは、最小 API レベルの要件を満たすデバイスでのみ実行できます。テスト構成ファイルが自動生成されている場合は、次の属性を Android.bp に追加できます。

test_min_api_level: 29,

テスト構成ファイルがカスタマイズされている場合は、テスト XML ファイルに次のコマンドを追加します。

   <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
       <option name="min-api-level" value="29" />
   </object>

VTS を使用したシャーディング プロセス

Android バージョン 10 以降の場合は、以下に示す手順に沿って VTS と CTS-on-GSI の両方のプランでテストしながら、複数のデバイスでシャーディング プロセスを実行できます。

run vts --shard-count <number of devices> -s <device serial> ...

このコマンドは、VTS プランをシャードに分割し、複数のデバイスで実行します。

run cts-on-gsi --shard-count <number of devices> -s <device serial> -s ...

このコマンドは、CTS-on-GSI プランを分割し、複数のデバイスで実行します。