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. Eles 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 é restaurar o estado original quando possível, por exemplo, fechando a proteção do teclado se ela tiver sido deixada aberta.
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.
É possível que um verificador implemente apenas um dos dois ou ambos, se for necessário verificar o estado antes do módulo e compará-lo ao estado após o módulo.
Existem vários exemplos
de implementações (link em inglês)
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
,
o que permite que o harness decida se outras informações, como um relatório de bug,
precisam ser capturadas.
Onde elas são definidas 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
capturados para a invocação com 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 com que o verificador do sistema informe uma falha de teste
definindo a opção --report-system-checkers
como true
. Isso resulta em uma
execução de teste mostrada como falha com o motivo da falha sendo a verificação
específica do verificador de status.