Verifique o estado do sistema

Os verificadores de status do sistema (SSCs) são definidos na configuração em nível de suíte e executados entre cada módulo. Eles realizam verificações para determinar se o módulo foi alterado 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 criadores de módulos não se esqueçam de fazer a limpeza após os testes; mas se o fizerem, forneça um rastro para que possa ser resolvido.

Um uso secundário é também restaurar o estado original quando possível, por exemplo, descartando a proteção do teclado se ela tiver sido deixada aberta.

Definição 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

Todo SSC deve 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 do módulo.

É possível que um verificador implemente apenas um dos dois, ou implemente ambos se houver necessidade de verificar o estado antes do módulo e compará-lo com o estado após o módulo.

Existem vários exemplos de implementações no Tradefed. Recomenda-se 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 conjunto de testes. No 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 chicote decida se informações adicionais, como um relatório de bug, devem 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-checkers.xml .

Como encontrar falhas no verificador

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

Isso permite descobrir após qual módulo o relatório de bug foi gerado.

É possível fazer com que o verificador do sistema relate como uma falha no teste definindo a opção --report-system-checkers como true . Isso resulta em uma execução de teste mostrando como com falha, sendo o motivo da falha a verificação específica do verificador de status.