Verificar o status do sistema

Os verificadores de status do sistema (SSCs, na sigla em inglês) são definidos na configuração do pacote e executados entre cada módulo. Elas realizam verificações para determinar se o módulo mudou e não restaurou alguns estados específicos, por exemplo, alterando um valor de propriedade do sistema.

Os SSCs são usados principalmente para garantir que os autores de módulos não se esqueçam de limpar após os testes. Se isso acontecer, forneça um rastro para que o problema possa ser resolvido.

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" />

Os SSCs são definidos na tag system_checker no XML de configuração do Tradefed.

Implementação

Cada CIS precisa implementar a interface ISystemStatusChecker, que fornece os dois métodos principais preExecutionCheck e postExecutionCheck que são executados antes e depois de cada execução de 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 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, o que permite que o harness decida se outras informações, como um relatório de bug, precisam ser capturadas.

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.