카메라 ITS 폴더블 테스트

Android 13부터 카메라 ITS에는 폴더블 기기의 테스트 지원이 포함됩니다. 폴더블 기기에는 기기가 접힌 상태인지 펼쳐진 상태인지에 따라 사용 가능 여부가 달라지는 카메라가 있습니다.

카메라 ID는 기기 유형과 모델, 브랜드에 따라 변경되며 실제 전면 카메라의 사용 가능 여부는 상태에 따라 변경됩니다. 따라서 카메라 ITS는 테스트에 사용할 장면과 카메라 조합을 동적으로 결정합니다. 카메라는 접힌 상태와 펼쳐진 상태에서 모두 테스트해야 하므로 폴더블 테스트에서는 테스트 프로세스 중에 DUT를 다시 마운트해야 합니다.

전면 카메라 및 후면 카메라 테스트

폴더블 기기에서 사용할 수 있는 카메라 센서는 기기가 접힌 상태인지 펼쳐진 상태인지에 따라 다릅니다. 폴더블의 경우 전면 카메라 사용 가능 여부는 상태에 따라 변경됩니다. 예를 들어 접힌 상태에서는 전면 카메라를 사용할 수 없습니다. 이처럼 전면 카메라의 사용 가능 여부가 변경되므로 접힌 상태와 펼쳐진 상태에서 모두 전면 카메라를 테스트해야 합니다. 카메라 ITS는 기기가 접힌 상태든 펼쳐진 상태든 후면 카메라의 사용 가능 여부가 동일하게 유지된다고 가정하므로 후면 카메라는 한 번만 테스트하면 됩니다.

기기의 상태에 따라 카메라 ITS는 사용할 수 없는 카메라 기기를 필터링하므로 카메라 기기가 카메라 및 장면 조합 목록에 표시되지 않습니다.

다음 표는 각 카메라 방향의 카메라 ITS 테스트 동작을 설명합니다.

카메라 방향 카메라 ITS 테스트 동작
후면 카메라 접힌 상태 또는 펼쳐진 상태에서 한 번 카메라를 테스트합니다.
기본 전면 카메라 접힌 상태에서 한 번, 펼쳐진 상태에서 한 번 카메라를 테스트합니다.
실제 전면 카메라 카메라를 사용할 수 있는 상태에서만 카메라를 테스트합니다.

테스트 절차

이 섹션에서는 폴더블 기기의 카메라를 테스트하는 단계를 설명합니다.

기기 설정

설정 정보는 설정을 참고하세요.

테스트 API 액세스 권한 부여

카메라 ITS에서 기기가 폴더블인지 아닌지 결정할 수 있으려면 테스트를 호출하기 전에 테스트 API 액세스 권한을 부여해야 합니다. 액세스 권한이 부여되지 않은 상태에서 카메라 ITS 테스트를 실행하면 앱이 비정상 종료됩니다.

액세스 권한을 부여하려면 다음 ADB 명령어를 실행하세요. 이 명령어는 단일 기기에 한 번 실행해야 합니다. CTS 인증 도구가 다른 버전으로 재설치되면 명령어를 다시 실행해야 합니다.

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

구성 파일

기기가 폴더블 기기라고 지정하려면 config.yml 파일에서 tabletsensor_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가 제공되지 않으며 테스트되지 않습니다. 후면 카메라는 한 가지 상태(접힌 상태가 좋음)에서만 테스트하면 되며 후면 카메라 결과에는 _folded 접미사가 없습니다.

기기가 접힌 상태에서 접힌 장면이 실행되는지 확인하고 폴더블 DUT의 상태를 확인하려면 다음 명령어를 실행하세요.

adb shell cmd device_state state

접힌 상태에서 테스트를 실행할 때 카메라 ITS는 사용자가 ITS 상자에 기기를 올바르게 설정하도록 유도하는 메시지를 터미널에 표시합니다. 메시지를 표시한 후 테스트 실행을 계속하려면 Enter를 누르세요.

접힌 상태와 펼쳐진 상태에서 모든 장면을 실행하는 경우 접힌 장면이 먼저 실행되고 펼쳐진 장면이 실행됩니다. 이렇게 하면 테스트 중에 필요한 재마운트의 양이 최소화됩니다.

카메라 ITS는 또한 접힌 상태 장면을 위해 생성된 tmp 디렉터리에 folded 접미사를 추가합니다.

샘플 명령어

다음은 폴더블 기기에서 테스트를 실행하기 위한 샘플 명령어입니다.

명령어 설명
python tools/run_all_tests.py 모든 장면을 실행합니다.
python tools/run_all_tests.py scenes=scene0 scene0을 실행합니다. 기기가 접혀 있고 사용자가 기본 전면 카메라를 테스트하는 경우 스크립트는 기기 상태를 파악하고 장면 이름에 접미사 _folded를 추가합니다. 사용자는 접힌 장면을 실행하기 위해 접미사를 추가하지 않아도 됩니다.
python tests/scene0/ -c config.yml 특정 테스트를 실행합니다.