Controlla lo stato del sistema

I controlli dello stato del sistema (SSC) sono definiti nella configurazione a livello di suite e vengono eseguiti tra ciascun modulo. Eseguono controlli per determinare se il modulo è cambiato e non ha ripristinato alcuni stati specifici, ad esempio modificando il valore di una proprietà di sistema.

Gli SSC vengono utilizzati principalmente per garantire che gli autori dei moduli non dimentichino di ripulire dopo i test; ma se lo fanno, fornirne traccia in modo che possa essere risolto.

Un utilizzo secondario è anche quello di ripristinare lo stato originale quando possibile, ad esempio rimuovendo lo scudo tastiera se era stato lasciato aperto.

Definizione XML del controllo dello stato del 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" />

Gli SSC sono definiti nel tag system_checker nell'XML di configurazione di Tradefed.

Implementazione

Ogni SSC deve implementare l' interfaccia ISystemStatusChecker , che fornisce i due metodi principali preExecutionCheck e postExecutionCheck eseguiti prima e dopo l'esecuzione di ogni modulo.

È possibile che un controllore implementi solo uno dei due o li implementi entrambi se è necessario controllare lo stato prima del modulo e confrontarlo con lo stato dopo il modulo.

Esistono diverse implementazioni di esempio in Tradefed. Si consiglia di concentrarsi su ogni implementazione su un singolo controllo per migliorare la riusabilità. Ad esempio, SystemServerStatusCheck controlla se il processo system_server è stato riavviato sul dispositivo durante l'esecuzione della suite di test. Nel postExecutionCheck , chiama deviceSoftRestarted , che è definito in NativeDevice per verificare se il processo system_server è stato riavviato.

Ogni operazione restituisce StatusCheckerResult , che consente al cablaggio di decidere se acquisire informazioni aggiuntive, come una segnalazione di bug.

Dove sono definiti nel CTS?

I controlli dello stato del sistema CTS sono definiti in /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml .

Come trovare gli errori del controllore

Per impostazione predefinita, gli errori del controllo di sistema vengono visualizzati solo nei log e come segnalazioni di bug acquisite per l'invocazione con il nome che segue il formato bugreport-checker-post-module-<module name>.zip .

Ciò ti consente di scoprire dopo quale modulo è stata generata la segnalazione di bug.

È possibile fare in modo che il controllo di sistema segnali lui stesso un fallimento del test impostando l'opzione --report-system-checkers su true . Ciò si traduce in un'esecuzione del test che viene visualizzata come non riuscita e il motivo del fallimento è il controllo particolare del controllo dello stato.