カメラ ITS 折りたたみ式デバイスのテスト

Android 13 以降では、カメラ ITS による折りたたみ式デバイスのテストがサポートされます。折りたたみ式デバイスの場合は、デバイスの状態(折りたたみ状態か展開状態か)によってカメラを利用できるかどうかが変わります。

デバイスのタイプ、モデル、ブランドによってカメラ ID が異なり、その状態によって物理的な前面カメラを利用できるかどうかが異なります。そのため、カメラ ITS ではテストに使用するシーンとカメラの組み合わせを動的に特定します。折りたたみ式デバイスのテストでは、カメラを折りたたみ状態と展開状態の両方でテストする必要があるため、テストプロセス中に DUT の再マウントが必要になります。

前面カメラと背面カメラのテスト

折りたたみ式デバイスで利用できるカメラ センサーは、デバイスの状態(折りたたみ状態か展開状態か)によって異なります。折りたたみ式デバイスの場合は、デバイスの状態によって前面カメラを利用できるかどうかが変わります。たとえば、折りたたみ状態では前面カメラは利用できません。状態によって前面カメラを利用できるかどうかが変わるため、折りたたみ状態と展開状態の両方で前面カメラをテストする必要があります。カメラ ITS では、背面カメラは折りたたみ状態でも展開状態でも利用できるとの想定から、背面カメラのテストは 1 回のみとなっています。

デバイスの状態に応じてカメラデバイスを利用できない場合は、カメラ ITS のフィルタによってデバイスが除外され、カメラとシーンの組み合わせの一覧には表示されません。

次の表に、カメラの向きに応じたカメラ ITS のテスト動作をまとめます。

カメラの向き カメラ ITS のテスト動作
背面カメラ 折りたたみ状態か展開状態かにかかわらず、カメラを 1 回だけテストします。
メインの前面カメラ 折りたたみ状態で 1 回、展開状態で 1 回、それぞれカメラをテストします。
物理的な前面カメラ カメラを利用できる状態でのみテストします。

テスト手順

ここでは、折りたたみ式デバイスのカメラをテストする手順について説明します。

デバイスのセットアップ

セットアップ情報については、セットアップをご覧ください。

テスト API にアクセス権を付与する

カメラ ITS でデバイスが折りたたみ式かどうかを識別できるようにするには、テストを呼び出す前にテスト API にアクセス権を付与する必要があります。アクセス権を付与していない場合、カメラ ITS テストを実行するとアプリがクラッシュします。

アクセス権を付与するには、次の ADB コマンドを実行します。このコマンドは、デバイスごとに 1 回ずつ実行する必要があります。バージョンの異なる CTS 検証ツールをインストールし直した場合は、このコマンドを再実行する必要があります。

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

構成ファイル

デバイスが折りたたみ式であることを指定するには、config.yml ファイルの 2 つのテストベット(tablet および sensor_fusion)に foldable_device パラメータを追加します。カメラ ITS はこのパラメータを使用して、camera_id と折りたたみ / 展開状態のシーンの組み合わせを特定します。

次に、折りたたみ式デバイスの config.yml ファイルの例を示します。

TestBeds:
  - Name: TABLET_SCENES
    # Test configuration for scenes[0:4, 6]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"     # "quotes" needed
      chart_loc_arg: ""
      camera: 0
      scene: scene2_a
  lighting_cntl: arduino    # can be "arduino" or "None"
  lighting_ch: 1
  foldable_device: "True"     # "False" for non-foldable DUTs

テストを実行する

折りたたみ式デバイスで ITS テストを実行するには、run_all_tests.py コマンドを実行します。詳しくは、テストの呼び出しをご覧ください。

折りたたみ式デバイスでカメラ ITS を実行すると、メインの前面カメラが折りたたみ状態と展開状態の両方でテストされます。デバイスが折りたたまれている場合、結果は CTS 検証ツール アプリの camera1_SCENE_NAME_folded オプションに表示されます。デバイスの状態によっては、物理的な前面カメラの ID が特定できず、テストできない場合があります。背面カメラの場合は、1 つの状態(折りたたみ状態が望ましい)でのみテストされるため、結果に接尾語 _folded は追加されません。

折りたたみシーンを確実に折りたたまれたデバイスで実行し、折りたたみ式の DUT の状態を確認するには、次のコマンドを実行します。

adb shell cmd device_state state

折りたたみ状態でテストを実行すると、ITS ボックスでデバイスを正しくセットアップするようユーザーに促すため、ターミナルにカメラ ITS からのメッセージが表示されます。メッセージが表示されたら、Enter を押してテストを続行できます。

すべてのシーンを折りたたみ状態と展開状態の両方で実行する場合は、先にすべての折りたたみシーンが実行され、その後に展開シーンが実行されます。これにより、テスト中に必要となる再マウントの回数を最小限に抑えることができます。

また、折りたたみ状態のシーン用に作成された tmp ディレクトリには、接尾辞 folded が追加されます。

サンプル コマンド

次の表に、折りたたみ式デバイスでテストを実行するためのサンプル コマンドをまとめます。

コマンド 説明
python tools/run_all_tests.py すべてのシーンを実行します。
python tools/run_all_tests.py scenes=scene0 scene0 を実行します。デバイスが折りたたまれており、ユーザーがメインの前面カメラをテストしている場合は、スクリプトによってデバイスの状態が特定され、シーン名に接尾辞 _folded が追加されます。折りたたみシーンを実行するために、ユーザーが接尾辞を追加する必要はありません。
python tests/scene0/ -c config.yml 特定のテストを実行します。