Testes de câmeras ITS dobráveis

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

Os IDs das câmeras mudam de acordo com o tipo, modelo e marca do dispositivo, e a disponibilidade de câmeras frontais físicas muda de acordo com o 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 montado novamente durante o processo de teste.

Teste da câmera 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. Para dispositivos dobráveis, a disponibilidade da câmera frontal muda de acordo com o 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, ela precisa ser testada nos estados dobrado e desdobrado. O ITS da câmera presume que a disponibilidade da câmera traseira permanece a mesma, independentemente de o dispositivo estar dobrado ou aberto. 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, e eles não aparecem na lista de combinações de câmera e cena.

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

Orientação da câmera Comportamento do teste de 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 de 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 do Camera ITS vai causar uma falha no app.

Para conceder acesso, execute o comando ADB abaixo. Esse comando precisa ser executado uma vez para um único dispositivo. Se o CTS Verifier for reinstalado com uma versão diferente, será necessário executar 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 ITS da câmera usa esse parâmetro para determinar as combinações de camera_id e cena para estados dobrados e desdobrados.

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 do ITS em um dispositivo dobrável, execute o comando run_all_tests.py. Para mais detalhes, consulte Como invocar testes.

Ao executar a ITS da câmera em um dispositivo dobrável, a câmera frontal principal é testada nos dois estados, dobrado e desdobrado. 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 física frontal podem ficar indisponíveis e não serem testados. A câmera traseira só precisa ser testada em um estado, de preferência o estado 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 comando a seguir.

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 desdobrado, as cenas dobradas serão executadas primeiro, seguidas pelas desdobradas. 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.

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 a cena 0. 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 dobradas.
python tests/scene0/ -c config.yml Executa um teste específico.