Vérifier l'état du système

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

Les CSI servent principalement à s'assurer 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 qu'il puisse être traité.

Une utilisation secondaire consiste également à restaurer l'état d'origine lorsque cela est possible, par exemple désactiver le verrouillage du clavier s'il était 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 CSI sont définies sous la balise system_checker dans la configuration Tradefed XML.

Implémentation

Chaque CSI doit implémenter la ISystemStatusChecker de commande, 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 qu'un vérificateur n'implémente qu'un seul des deux à la fois 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 implémentations qui existent dans Tradefed. Chaque implémentation est recommandée pour se concentrer 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 le 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, ce qui permet au harnais de décider si des informations supplémentaires, comme un rapport de bug, doit être capturé.

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.

Identifier les échecs du vérificateur

Par défaut, les échecs du vérificateur du système ne s'affichent que dans les journaux et les rapports de bug capturé pour l'appel, dont le nom suit le format bugreport-checker-post-module-<module name>.zip

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

Il est possible de faire du rapport du vérificateur du système comme un échec de test lui-même en en définissant l'option --report-system-checkers sur true. Cela se traduit par l'exécution du test s'affiche comme ayant échoué, le motif de l'échec étant le vérificateur d'état un contrôle particulier.