Systemstatus überprüfen

Systemstatusprüfer (SSCs) 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.

Ein Prüfer kann nur einen der beiden oder beide implementieren, wenn der Status vor dem Modul geprüft und mit dem Status nach dem Modul verglichen werden muss.

In Tradefed gibt es mehrere Beispielimplementierungen. Bei jeder Implementierung wird empfohlen, sich auf eine einzelne Prüfung zu konzentrieren, um die Wiederverwendbarkeit zu verbessern. Mit SystemServerStatusCheck wird beispielsweise geprüft, ob der system_server-Prozess während der Ausführung der Testsuite auf dem Gerät neu gestartet wurde. 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 zurück, anhand dessen der Harness entscheiden kann, ob zusätzliche Informationen wie ein Fehlerbericht erfasst werden sollen.

Wo sind sie in CTS definiert?

Die CTS-Systemstatusprüfer sind in /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml definiert.

Fehler bei der Prüfung finden

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 herausfinden, nach welchem Modul der Fehlerbericht generiert wurde.

Sie können festlegen, dass der Systemprüfer selbst als Testfehler gemeldet wird, indem Sie die Option --report-system-checkers auf true setzen. Dies führt dazu, dass der Testlauf als fehlgeschlagen angezeigt wird und als Grund für den Fehler die jeweilige Prüfung des Statusprüfers angegeben wird.