Os verificadores de status do sistema (SSCs, na sigla em inglês) são definidos na configuração no nível 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, mudando um valor de propriedade do sistema.
Os SSCs são usados principalmente para garantir que os gravadores de módulos não se esqueçam de limpar após os testes. No entanto, se isso acontecer, forneça um rastreamento para que o problema 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 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 SSC 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.
É possível que um verificador implemente apenas um dos dois ou ambos, se houver necessidade de verificar o estado antes e depois do módulo.
Existem várias implementações de exemplo 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. 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 harness 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 do 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 registros e como relatórios de bugs
capturados para a invocação com nome no formato
bugreport-checker-post-module-<module name>.zip
.
Assim, você descobre depois de qual módulo o relatório de bug foi gerado.
É possível fazer com que o relatório do verificador de sistema seja uma falha de teste definindo a opção --report-system-checkers
como true
. Isso resulta em uma execução de teste que aparece como falha, e o motivo é a verificação específica do verificador de status.