GoogleTest

プラットフォーム向けの GoogleTest(GTest、「ネイティブ テスト」とも呼ばれます)は通常、下位レベルの HAL にアクセスするか、さまざまなシステム サービスに対して raw IPC を実行します。したがって、テスト方法は通常、テスト対象のサービスと密接に関連しています。

継続的なテスト インフラストラクチャと統合するには、GTest フレームワークを使用して GTest を構築します。

プラットフォーム ソースの GTest の例を次に示します。

ステップの概要

  1. GTest モジュールのセットアップ例に従います。
  2. GTest の依存関係を自動的に含めるには、テスト モジュールの構成で BUILD_NATIVE_TEST ビルドルールを使用します。
  3. シンプルおよび複雑なオプションの例に沿ってテスト構成を作成します。
  4. 増分ビルドの場合は mmm、フルビルドの場合は mma を使用して、テスト モジュールをビルドします。

    make hwui_unit_tests -j
    
  5. Atest を使用してローカルでテストを実行します。

    atest hwui_unit_tests
    

GTest に引数を追加することもできます。次の引数は特に有用です。* native-test-flag は、GTest のシェルコマンドに渡す追加のフラグ値を指定します。* native-test-timeout は、テストのタイムアウト値をマイクロ秒単位で指定します。

次のサンプルコードでは、これらの引数の両方を使用しています。

   <pre class="devsite-terminal devsite-click-to-copy">
   atest <var>test-name</var> -- --module-arg <var>test-name</var>:native-test-flag:"\"<var>argument1</var> <var>argument2</var>\"" \
   --module-arg <var>test-name</var>:native-test-timeout:60000
   </pre>
  1. Trade Federation テストハーネスでテストを実行します。

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  2. 手動でインストールして実行するには:

    1. 生成されたテストバイナリをデバイスにプッシュします。

      adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
        /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. GTest を起動し、デバイスでテストバイナリを起動してテストを実行します。

      adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

    テスト実行のカスタマイズの詳細については、テストバイナリに --help パラメータを追加します。パラメータの詳細については、GTest の詳細ガイドをご覧ください。