Systemstatusprüfer werden auf der Konfigurationsebene der Suite definiert und zwischen den einzelnen Modulen ausgeführt. Sie führen Prüfungen durch, um festzustellen, ob sich das Modul geändert hat und bestimmte Status nicht wiederhergestellt wurden, z. B. ein geänderter Wert einer Systemeigenschaft.
SSCs werden hauptsächlich verwendet, damit die Modulautoren nicht vergessen, nach ihren Tests aufzuräumen. Falls dies doch passiert, wird eine Spur hinterlassen, damit das Problem behoben werden kann.
Eine sekundäre Verwendung besteht darin, nach Möglichkeit den ursprünglichen Zustand wiederherzustellen, z. B. den Sperrbildschirm zu schließen, wenn er offen gelassen wurde.
XML-Definition für den Systemstatusprüfer
<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" />
SSCs werden im Tradefed-Konfigurations-XML-Code unter dem Tag system_checker
definiert.
Implementierung
Jede SSC muss die ISystemStatusChecker
-Schnittstelle implementieren, die die beiden Hauptmethoden preExecutionCheck
und postExecutionCheck
bereitstellt, die vor und nach jeder Modulausführung ausgeführt werden.
Eine Prüffunktion kann nur eine der beiden Methoden implementieren Wenn Sie den Status vor dem Modul prüfen und mit dem den Status nach dem Modul.
Mehrere Beispiele
Implementierungen
die in Tradefed vorhanden sind. Es wird empfohlen, sich bei jeder Implementierung auf eine einzelne Prüfung zu konzentrieren.
um die Wiederverwendbarkeit zu verbessern. Beispiel:
SystemServerStatusCheck
prüft, ob der system_server
-Prozess während des folgenden Zeitraums auf dem Gerät neu gestartet wurde:
die Ausführung der Testsuite. Im postExecutionCheck
wird deviceSoftRestarted
aufgerufen, das in NativeDevice
definiert ist, um zu prüfen, ob der system_server
-Prozess neu gestartet wurde.
Jeder Vorgang gibt
StatusCheckerResult
,
So kann das Team entscheiden, ob zusätzliche Informationen
wie ein Fehlerbericht,
sollten erfasst werden.
Wo sind sie in CTS definiert?
Die Definition der CTS-Systemstatusprüfungen /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml
So finden Sie Prüffehler
Standardmäßig werden Fehler der Systemprüfung nur in den Protokollen und als Fehlerberichte angezeigt, die für den Aufruf mit dem Namen bugreport-checker-post-module-<module name>.zip
erfasst wurden.
So können Sie feststellen, nach welchem Modul der Fehlerbericht erstellt wurde.
Sie können festlegen, dass der Systemcheck selbst als Testfehler gemeldet wird, indem Sie die Option --report-system-checkers
auf true
setzen. Dies führt dazu, dass ein Testlauf als fehlgeschlagen angezeigt wird und als Grund für den Fehler die jeweilige Prüfung durch den Statusprüfer angegeben wird.