Pruebas de plegables del ITS de la cámara

A partir de Android 13, el ITS de la cámara incluye compatibilidad con pruebas para dispositivos plegables. Los dispositivos plegables tienen cámaras disponibles o no según el estado del dispositivo (plegado o desplegado).

Los IDs de la cámara cambian según el tipo, el modelo y la marca del dispositivo, y la disponibilidad de las cámaras frontales físicas cambia según el estado. Debido a esto, el ITS de la cámara determina de forma dinámica las combinaciones de escenas y cámaras que se usarán para las pruebas. Como las cámaras deben probarse en los estados plegado y desplegado, las pruebas de dispositivos plegables requieren que el DUT se vuelva a montar durante el proceso de prueba.

Pruebas de la cámara frontal y posterior

Los sensores de cámara disponibles en un dispositivo plegable son diferentes según si el dispositivo está plegado o desplegado. En el caso de los dispositivos plegables, la disponibilidad de la cámara frontal cambia según el estado. Por ejemplo, la cámara frontal no está disponible en el estado plegado. Debido a este cambio en la disponibilidad de la cámara frontal, las cámaras frontales deben probarse en los estados plegado y desplegado. El ITS de la cámara supone que la disponibilidad de la cámara posterior sigue siendo la misma, ya sea que el dispositivo esté plegado o desplegado, por lo que las cámaras posteriores solo deben probarse una vez.

Según el estado del dispositivo, el ITS de la cámara filtra los dispositivos de cámara no disponibles, y estos no aparecen en la lista de combinaciones de cámara y escena.

En la siguiente tabla, se describe el comportamiento de la prueba de ITS de la cámara para cada orientación de la cámara.

Orientación de la cámara Comportamiento de la prueba de ITS de la cámara
Cámara posterior Prueba la cámara una vez en el estado plegado o desplegado.
Cámara frontal principal Prueba la cámara una vez en el estado plegado y una vez en el estado desplegado.
Cámara frontal física Prueba la cámara solo en los estados donde está disponible.

Procedimiento de prueba

En esta sección, se describen los pasos para probar las cámaras de dispositivos plegables.

Configurar dispositivo

Para obtener información sobre la configuración, consulta Configuración.

Otorga acceso a la API de prueba

Para que el ITS de la cámara determine si el dispositivo es plegable o no, debes otorgar acceso a la API de prueba antes de invocar las pruebas. Si no se otorga el acceso, la ejecución de las pruebas de ITS de la cámara hace que la app falle.

Para otorgar acceso, ejecuta el siguiente comando de ADB. Este comando se debe ejecutar una vez para un solo dispositivo. Si se reinstala CTS Verifier con una versión diferente, debes volver a ejecutar el comando.

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

Archivo de configuración

Para especificar que el dispositivo es plegable, agrega el parámetro foldable_device en las plataformas de pruebas tablet y sensor_fusion del archivo config.yml. El ITS de la cámara usa este parámetro para determinar las combinaciones de camera_id y de escenas para los estados plegado y desplegado.

El siguiente es un ejemplo de un archivo config.yml para un dispositivo plegable.

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

Cómo ejecutar pruebas

Para ejecutar las pruebas de ITS en un dispositivo plegable, ejecuta el comando run_all_tests.py. Para obtener más información, consulta Cómo invocar pruebas.

Cuando se ejecuta el ITS de la cámara en un dispositivo plegable, la cámara frontal principal se prueba en ambos estados, plegado y desplegado. Si el dispositivo está plegado, los resultados se muestran en la opción camera1_SCENE_NAME_folded de la app de CTS Verifier. Según el estado del dispositivo, ciertos IDs de cámara física frontal no están disponibles y no se prueban. La cámara posterior solo se debe probar en un estado, preferiblemente el estado plegado, y los resultados de la cámara posterior no tienen el sufijo _folded.

Para asegurarte de que las escenas plegadas se ejecuten con el dispositivo plegado y verificar el estado del DUT plegable, ejecuta el siguiente comando.

adb shell cmd device_state state

Cuando se ejecutan pruebas en un estado plegado, el ITS de la cámara muestra un mensaje en la terminal para solicitarle al usuario que configure el dispositivo correctamente en la caja de ITS. Para continuar ejecutando la prueba después de la indicación, presiona Intro.

Si ejecutas todas las escenas en los estados plegado y desplegado, las escenas plegadas se ejecutan primero, seguidas de las desplegadas. Esto minimiza la cantidad de reenganches necesarios durante las pruebas.

El ITS de la cámara también agrega el sufijo folded al directorio tmp que se creó para las escenas de estado plegado.

Comandos de muestra

Los siguientes son comandos de muestra para la ejecución de pruebas en dispositivos plegables.

Comando Descripción
python tools/run_all_tests.py Ejecuta todas las escenas.
python tools/run_all_tests.py scenes=scene0 Ejecuta scene0. Si el dispositivo está plegado y el usuario está probando la cámara frontal principal, la secuencia de comandos determina el estado del dispositivo y agrega el sufijo _folded al nombre de la escena. Los usuarios no tienen que agregar el sufijo para ejecutar las escenas plegadas.
python tests/scene0/ -c config.yml Ejecuta una prueba específica.