Vérifier l'état du système

Les vérificateurs d'état du système (SSC) sont définis au niveau de la configuration de la suite et exécutés entre chaque module. Ils effectuent des vérifications pour déterminer si le module a changé et n'a pas restauré certains états donnés, par exemple en modifiant la valeur d'une propriété système.

Les SSC sont principalement utilisés pour garantir que les rédacteurs de modules n'oublient pas de nettoyer après leurs tests ; mais si c'est le cas, fournissez-en une trace afin que le problème puisse être résolu.

Une utilisation secondaire consiste également à restaurer l'état d'origine lorsque cela est possible, par exemple en fermant le protège-clavier s'il est resté ouvert.

Définition XML du vérificateur d'état du système

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

Les SSC sont définis sous la balise system_checker dans le XML de configuration Tradefed.

Mise en œuvre

Chaque SSC doit implémenter l' interface ISystemStatusChecker , qui fournit les deux méthodes principales preExecutionCheck et postExecutionCheck qui s'exécutent avant et après l'exécution de chaque module.

Il est possible pour un vérificateur d'implémenter un seul des deux, ou d'implémenter les deux s'il est nécessaire de vérifier l'état avant le module et de le comparer à l'état après le module.

Plusieurs exemples d'implémentation existent dans Tradefed. Il est recommandé que chaque implémentation se concentre sur une seule vérification pour améliorer la réutilisabilité. Par exemple, SystemServerStatusCheck vérifie si le processus system_server a redémarré sur l'appareil pendant l'exécution de la suite de tests. Dans postExecutionCheck , il appelle deviceSoftRestarted , qui est défini dans NativeDevice pour vérifier si le processus system_server a redémarré.

Chaque opération renvoie StatusCheckerResult , qui permet au harnais de décider si des informations supplémentaires, comme un rapport de bogue, doivent être capturées.

Où sont-ils définis dans CTS ?

Les vérificateurs d'état du système CTS sont définis dans /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml .

Comment trouver les échecs du vérificateur

Par défaut, les échecs du vérificateur système s'affichent uniquement dans les journaux et sous forme de rapports de bogues capturés pour l'invocation avec un nom suivant le format bugreport-checker-post-module-<module name>.zip .

Cela vous permet de savoir après quel module le rapport de bug a été généré.

Il est possible de faire en sorte que le vérificateur du système signale lui-même un échec de test en définissant l'option --report-system-checkers sur true . Cela entraîne l'affichage d'un test comme ayant échoué, la raison de l'échec étant la vérification particulière du vérificateur d'état.