Testar imagens de câmera em dispositivos dobráveis

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

Os IDs de 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 o teste. Como as câmeras precisam ser testadas nos estados dobrado e desdobrado, o teste de dobráveis exige que o DUT seja remontado durante o processo de teste.

Teste das 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 desdobrado. Em dispositivos dobráveis, a disponibilidade da câmera frontal muda dependendo do estado. Por exemplo, a câmera frontal não está disponível quando o dispositivo está dobrado. Devido a essa mudança na disponibilidade da câmera frontal, ela precisa ser testada nos estados dobrado e desdobrado. O ITS da câmera pressupõe que a disponibilidade da câmera traseira permanece a mesma, seja com o dispositivo dobrado ou desdobrado. Portanto, as câmeras traseiras só precisam ser testadas uma vez.

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

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

Orientação da câmera Comportamento do teste ITS da câmera
Câmera traseira Testa a câmera uma vez no estado dobrado ou desdobrado
Câmera frontal principal Testa a câmera uma vez no estado dobrado e outra no estado desdobrado.
Câmera frontal física Testa a câmera apenas nos 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, é necessário conceder acesso à API de teste antes de invocar os testes. Se o acesso não for concedido, a execução dos testes ITS da câmera vai fazer com que o app falhe.

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 ambientes de teste tablet e sensor_fusion no arquivo config.yml. O ITS da câmera usa esse parâmetro para determinar as combinações de camera_id e cena para os estados dobrado e desdobrado.

Confira abaixo 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 do 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 desdobrado. Se o dispositivo estiver dobrado, os resultados vão aparecer na opção camera1_SCENE_NAME_folded do app CTS Verifier. Dependendo do estado do dispositivo, alguns IDs de câmera física frontal não ficam disponíveis e não são testados. A câmera traseira só precisa ser testada em um estado, de preferência dobrada, e os resultados 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 pedir que o usuário configure o dispositivo corretamente na caixa do ITS. Para continuar executando o teste após o comando, pressione Enter.

Se você estiver executando todas as cenas nos estados dobrado e desdobrado, as cenas dobradas serão executadas primeiro, seguidas pelas desdobradas. Isso minimiza a quantidade de remontagens necessárias durante o teste.

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

Exemplos de comandos

Confira a seguir exemplos de comandos para execução de testes 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 scene0. Se o dispositivo estiver dobrado e o usuário estiver testando a câmera frontal principal, o script vai 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 recolhidas.
python tests/scene0/ -c config.yml Executa um teste específico.