Verifique o estado do sistema

Os verificadores de status do sistema (SSCs) são definidos na configuração de nível de suíte e executados entre cada módulo. Eles realizam verificações para determinar se o módulo mudou e não restaurou alguns estados determinados, 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 limpar após seus testes; mas se o fizerem, forneça um rastreamento para que possa ser resolvido.

Um uso secundário é também restaurar o estado original quando possível, por exemplo, dispensando o keyguard se ele foi deixado aberto.

Definição de 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 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 da execução de cada módulo.

É possível para um verificador implementar apenas um dos dois, ou implementar 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árias implementações de exemplo no Tradefed. Recomenda-se que cada implementação se concentre em uma única verificação para melhorar a capacidade de 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 , que permite que o equipamento 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 do verificador

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

Isso permite que você descubra 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 de teste definindo a opção --report-system-checkers como true . Isso resulta em uma execução de teste exibida como falha, com o motivo da falha sendo a verificação específica do verificador de status.