Verificar o status do sistema

Os verificadores de status do sistema (SSCs) são definidos na configuração e no pacote executados entre cada módulo. Eles executam verificações para determinar se o módulo mudou e não restaura alguns estados, por exemplo, a alteração de uma propriedade do sistema .

As SSCs são usadas principalmente para garantir que os autores dos módulos não se esqueçam de limpar depois dos testes. mas, se o fizerem, deixem um rastro para que possam ser resolvidos.

Um uso secundário também é restaurar o estado original quando possível, por exemplo dispensando o bloqueio de teclado caso ele tenha ficado aberto.

Definição do XML do verificador de status do sistema

<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />

As SSCs são definidas na tag system_checker na configuração da Tradefed. XML

Implementação

Toda CIS precisa implementar o ISystemStatusChecker interface, que fornece os dois métodos principais preExecutionCheck e postExecutionCheck que são executadas antes e depois de cada execução do módulo.

O verificador pode implementar somente uma das duas ou tanto se houver necessidade de verificar o estado antes do módulo e compará-lo com o estado após o módulo.

Vários exemplos implementações existem no Tradefed. Recomendamos que cada implementação se concentre em uma única verificação para melhorar a reutilização. Por exemplo: SystemServerStatusCheck verifica se o processo do system_server foi reiniciado no dispositivo durante a execução do pacote de testes. Na postExecutionCheck, ele chama deviceSoftRestarted, que é definido em NativeDevice para verificar se o processo system_server foi reiniciado.

Cada operação retorna StatusCheckerResult, que permite que o arcabouço decida se informações adicionais, como um relatório do bug, precisam ser capturados.

Onde eles são definidos no CTS?

Os verificadores de status do sistema CTS são definidos em /test/suite_harness/tools/cts-tradefed/res/config/cts-system-Verifiers.xml

Como encontrar falhas do verificador

Por padrão, as falhas do verificador do sistema aparecem apenas nos registros e como relatórios de bugs capturada para a invocação com o nome seguindo o formato bugreport-checker-post-module-<module name>.zip:

Isso permite que você descubra em qual módulo o relatório do bug foi gerado.

É possível fazer o relatório do verificador de sistema como uma falha de teste, definindo a opção --report-system-checkers como true. Isso resulta em um A execução do teste aparece como reprovada, sendo o verificador de status o motivo da falha verificação específica.