Testar imagens de câmera em dispositivos dobráveis

No Android 13, o Camera ITS inclui suporte a testes para dispositivos dobráveis. Dispositivos dobráveis têm câmeras que ficam disponíveis ou indisponíveis dependendo se o dispositivo está em um estado dobrado ou aberto.

Os IDs da câmera mudam dependendo do tipo, modelo e marca do dispositivo, e a disponibilidade de câmeras frontais físicas muda dependendo do estado. Por isso, o Camera ITS determina dinamicamente as combinações de cena e câmera a serem usadas para testes. Como as câmeras precisam ser testadas nos estados dobrado e aberto, o teste de dobráveis exige que o DUT seja remontado durante o processo de teste.

Teste de câmeras frontal e traseira

Os sensores de câmera disponíveis em um dispositivo dobrável são diferentes dependendo se o dispositivo está dobrado ou aberto. Para dobráveis, a disponibilidade da câmera frontal muda dependendo do estado. Por exemplo, a câmera frontal não está disponível no estado dobrado. Devido a essa mudança na disponibilidade da câmera frontal, as câmeras frontais precisam ser testadas nos estados dobrado e aberto. O Camera ITS pressupõe que a disponibilidade da câmera traseira permanece a mesma, seja o dispositivo dobrado ou aberto. Portanto, as câmeras traseiras só precisam ser testadas uma vez.

Dependendo do estado do dispositivo, o Camera ITS filtra os dispositivos de câmera indisponíveis, e eles não aparecem na lista de combinações de câmera e cena.

A tabela a seguir descreve o comportamento do teste do Camera ITS para cada orientação da câmera.

Orientação da câmera Comportamento do teste do Camera ITS
Câmera traseira Testa a câmera uma vez no estado dobrado ou aberto
Câmera frontal principal Testa a câmera uma vez no estado dobrado e uma vez no estado aberto.
Câmera frontal física Testa a câmera apenas em estados em que ela está disponível.

Procedimento de teste

Esta seção descreve as etapas para testar câmeras em dispositivos dobráveis.

Configurar dispositivo

Para informações de configuração, consulte Configuração.

Conceder acesso à API de teste

Para que o Camera ITS determine se o dispositivo é dobrável ou não, conceda acesso à API de teste antes de invocar os testes. Se o acesso não for concedido, a execução dos testes do Camera ITS resultará na falha do app.

Para conceder acesso, execute o seguinte comando adb. Esse comando precisa ser executado uma vez para um único dispositivo. Se o CTS Verifier for reinstalado com uma versão diferente, execute o comando novamente.

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

Arquivo de configuração

Para especificar que o dispositivo é dobrável, adicione o parâmetro foldable_device nos testbeds tablet e sensor_fusion no arquivo config.yml. O Camera ITS usa esse parâmetro para determinar as combinações de camera_id e cena para estados dobrados e abertos.

Confira a seguir um exemplo de arquivo config.yml para um dispositivo dobrável.

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

Executar testes

Para executar os testes ITS em um dispositivo dobrável, execute o comando run_all_tests.py. Para mais detalhes, consulte Invocar testes.

Ao executar o Camera ITS em um dispositivo dobrável, a câmera frontal principal é testada nos dois estados, dobrado e aberto. Se o dispositivo estiver dobrado, os resultados serão exibidos na opção camera1_SCENE_NAME_folded no app CTS Verifier. Dependendo do estado do dispositivo, alguns IDs de câmera frontal física não estão disponíveis e não são testados. A câmera traseira só precisa ser testada em um estado, de preferência o dobrado, e os resultados da câmera traseira não têm o sufixo _folded.

Para garantir que as cenas dobradas sejam executadas com o dispositivo dobrado e verificar o estado do DUT dobrável, execute o seguinte comando.

adb shell cmd device_state state

Ao executar testes em um estado dobrado, o Camera ITS mostra uma mensagem no terminal para solicitar que o usuário configure o dispositivo corretamente na caixa ITS. Para continuar executando o teste após o prompt, pressione Enter.

Se você estiver executando todas as cenas nos estados dobrado e aberto, as cenas dobradas serão executadas primeiro, seguidas pelas cenas abertas. Isso minimiza a quantidade de remontagem necessária durante o teste.

O Camera ITS também adiciona o sufixo folded ao diretório tmp criado para cenas de estado dobrado.

Exemplo de comandos

Confira a seguir exemplos de comandos para execução do teste em dispositivos dobráveis.

Comando Descrição
python tools/run_all_tests.py Executa todas as cenas.
python tools/run_all_tests.py scenes=scene0 Executa a cena0. Se o dispositivo estiver dobrado e o usuário estiver testando a câmera frontal principal, o script determinará o estado do dispositivo e adicionará o sufixo _folded ao nome da cena. Os usuários não precisam adicionar o sufixo para executar as cenas dobradas.
python tests/scene0/ -c config.yml Executa um teste específico.